]> granicus.if.org Git - php/commitdiff
emalloc never returns null
authorMarkus Staab <maggus.staab@googlemail.com>
Wed, 13 Jun 2018 10:27:57 +0000 (12:27 +0200)
committerChristoph M. Becker <cmbecker69@gmx.de>
Wed, 13 Jun 2018 14:00:41 +0000 (16:00 +0200)
ext/xmlrpc/libxmlrpc/encodings.c

index 5777152ea8735801895ee17b80f8d1a612498a93..a2e6ff194b1476898cc80c9a99e66ce732d62477 100644 (file)
@@ -67,26 +67,24 @@ static char* convert(const char* src, int src_len, int *new_len, const char* fro
          size_t st;
          outbuf = (char*)emalloc(outlen + 1);
 
-         if(outbuf) {
-            out_ptr = (char*)outbuf;
-            while(inlenleft) {
-               st = iconv(ic, (char**)&src, &inlenleft, &out_ptr, &outlenleft);
-               if(st == -1) {
-                  if(errno == E2BIG) {
-                     int diff = out_ptr - outbuf;
-                     outlen += inlenleft;
-                     outlenleft += inlenleft;
-                     outbuf = (char*)erealloc(outbuf, outlen + 1);
-                     if(!outbuf) {
-                        break;
-                     }
-                     out_ptr = outbuf + diff;
-                  }
-                  else {
-                     efree(outbuf);
-                     outbuf = 0;
+         out_ptr = (char*)outbuf;
+         while(inlenleft) {
+            st = iconv(ic, (char**)&src, &inlenleft, &out_ptr, &outlenleft);
+            if(st == -1) {
+               if(errno == E2BIG) {
+                  int diff = out_ptr - outbuf;
+                  outlen += inlenleft;
+                  outlenleft += inlenleft;
+                  outbuf = (char*)erealloc(outbuf, outlen + 1);
+                  if(!outbuf) {
                      break;
                   }
+                  out_ptr = outbuf + diff;
+               }
+               else {
+                  efree(outbuf);
+                  outbuf = 0;
+                  break;
                }
             }
          }