From: Markus Staab Date: Wed, 13 Jun 2018 10:27:57 +0000 (+0200) Subject: emalloc never returns null X-Git-Tag: php-7.3.0alpha2~36 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=10a9c5194222c3ebdb740a366056092f0e3a62d5;p=php emalloc never returns null --- diff --git a/ext/xmlrpc/libxmlrpc/encodings.c b/ext/xmlrpc/libxmlrpc/encodings.c index 5777152ea8..a2e6ff194b 100644 --- a/ext/xmlrpc/libxmlrpc/encodings.c +++ b/ext/xmlrpc/libxmlrpc/encodings.c @@ -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; } } }