diff --git a/CoreFoundation/URL.subproj/CFURLComponents_URIParser.c b/CoreFoundation/URL.subproj/CFURLComponents_URIParser.c index e7d071100d..a6798d161f 100644 --- a/CoreFoundation/URL.subproj/CFURLComponents_URIParser.c +++ b/CoreFoundation/URL.subproj/CFURLComponents_URIParser.c @@ -280,9 +280,11 @@ CF_EXPORT CFStringRef _CFStringCreateByAddingPercentEncodingWithAllowedCharacter } else { // not big enough? malloc it. - size_t mallocSize; + CFIndex mallocSize; if ( _CFMultiplyBufferSizeWithoutOverflow(maxBufferSize, 4, &mallocSize) ) { - inBuf = (UInt8 *)malloc(mallocSize); + if (mallocSize >= 0) { + inBuf = (UInt8 *)malloc(mallocSize); + } } } if ( inBuf ) { @@ -455,9 +457,11 @@ CF_EXPORT CFStringRef _CFStringCreateByRemovingPercentEncoding(CFAllocatorRef al } else { // not big enough? malloc it. - size_t mallocSize; + CFIndex mallocSize; if ( _CFMultiplyBufferSizeWithoutOverflow(maxBufferSize, 2, &mallocSize) ) { - encodedBuf = (UInt8 *)malloc(mallocSize); + if (mallocSize >= 0) { + encodedBuf = (UInt8 *)malloc(mallocSize); + } } } if ( encodedBuf ) {