(__gconv_open): If __gconv_find_transform returned != __GCONV_OK, there is
authordrepper <drepper>
Sun, 7 May 2000 20:07:29 +0000 (20:07 +0000)
committerdrepper <drepper>
Sun, 7 May 2000 20:07:29 +0000 (20:07 +0000)
nothing to clean up.

iconv/gconv_open.c

index 35ea478..147f5b0 100644 (file)
@@ -93,25 +93,25 @@ __gconv_open (const char *toset, const char *fromset, __gconv_t *handle,
          result->__data[cnt].__internal_use = 0;
          result->__data[cnt].__statep = &result->__data[cnt].__state;
        }
-    }
-
-  if (res != __GCONV_OK)
-    {
-      /* Something went wrong.  Free all the resources.  */
-      int serrno = errno;
 
-      if (result != NULL)
+      if (res != __GCONV_OK)
        {
-         while (cnt-- > 0)
-           free (result->__data[cnt].__outbuf);
+         /* Something went wrong.  Free all the resources.  */
+         int serrno = errno;
 
-         free (result);
-         result = NULL;
-       }
+         if (result != NULL)
+           {
+             while (cnt-- > 0)
+               free (result->__data[cnt].__outbuf);
+
+             free (result);
+             result = NULL;
+           }
 
-      __gconv_close_transform (steps, nsteps);
+         __gconv_close_transform (steps, nsteps);
 
-      __set_errno (serrno);
+         __set_errno (serrno);
+       }
     }
 
   *handle = result;