]> git.sur5r.net Git - i3/i3/commitdiff
Plug minor leaks in string conversion routines.
authorFernando Tarlá Cardoso Lemos <fernandotcl@gmail.com>
Sun, 6 Nov 2011 22:01:25 +0000 (20:01 -0200)
committerMichael Stapelberg <michael@stapelberg.de>
Mon, 7 Nov 2011 19:57:11 +0000 (19:57 +0000)
i3-input/ucs2_to_utf8.c
i3bar/src/ucs2_to_utf8.c
src/util.c

index 4d73493c9c0e3862c7f3be4be6adc3074591d6b4..df112eefe65fe472772e268d19b2dd55ccf86af0 100644 (file)
@@ -47,6 +47,7 @@ char *convert_ucs_to_utf8(char *input) {
     /* Convert our text */
     int rc = iconv(conversion_descriptor, (void*)&input, &input_size, &output, &output_size);
     if (rc == (size_t)-1) {
+        free(buffer);
         perror("Converting to UCS-2 failed");
         return NULL;
     }
@@ -85,6 +86,7 @@ char *convert_utf8_to_ucs2(char *input, int *real_strlen) {
     int rc = iconv(conversion_descriptor2, (void*)&input, &input_size, &output, &output_size);
     if (rc == (size_t)-1) {
         perror("Converting to UCS-2 failed");
+        free(buffer);
         if (real_strlen != NULL)
             *real_strlen = 0;
         return NULL;
index 7797dc1f3df2f6e300c672e78a0c1473a78eaeae..642a72fb3d838812ba94fe27bc7ed94b26954493 100644 (file)
@@ -49,6 +49,7 @@ char *convert_ucs_to_utf8(char *input) {
     int rc = iconv(conversion_descriptor, (void*)&input, &input_size, &output, &output_size);
     if (rc == (size_t)-1) {
         perror("Converting to UCS-2 failed");
+        free(buffer);
         return NULL;
     }
 
@@ -88,6 +89,7 @@ char *convert_utf8_to_ucs2(char *input, int *real_strlen) {
     int rc = iconv(conversion_descriptor2, (void*)&input, &input_size, &output, &output_size);
     if (rc == (size_t)-1) {
         perror("Converting to UCS-2 failed");
+        free(buffer);
         if (real_strlen != NULL)
             *real_strlen = 0;
         return NULL;
index f894eb3f57bdc9dc827ac6c5e44bcd1caa715d73..72146bff7aa7c1769a1d1d341255a738f1dfc62f 100644 (file)
@@ -153,6 +153,7 @@ char *convert_utf8_to_ucs2(char *input, int *real_strlen) {
     int rc = iconv(conversion_descriptor, (void*)&input, &input_size, &output, &output_size);
     if (rc == (size_t)-1) {
         perror("Converting to UCS-2 failed");
+        FREE(buffer);
         if (real_strlen != NULL)
             *real_strlen = 0;
         return NULL;