File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -197,6 +197,9 @@ char **emscripten_fetch_unpack_response_headers(const char *headersString) {
197197 numHeaders ++ ;
198198 }
199199 char * * unpackedHeaders = (char * * )malloc (sizeof (char * ) * ((numHeaders * 2 ) + 1 ));
200+ if (!unpackedHeaders ) {
201+ return NULL ;
202+ }
200203 unpackedHeaders [numHeaders * 2 ] = NULL ;
201204
202205 // Allocate each header.
@@ -206,17 +209,24 @@ char **emscripten_fetch_unpack_response_headers(const char *headersString) {
206209 const char * split = strchr (rowStart , ':' );
207210 size_t headerSize = (size_t )split - (size_t )rowStart ;
208211 char * header = (char * )malloc (headerSize + 1 );
212+ unpackedHeaders [headerNum ] = header ;
213+ if (!header ) {
214+ emscripten_fetch_free_unpacked_response_headers (unpackedHeaders );
215+ return NULL ;
216+ }
209217 strncpy (header , rowStart , headerSize );
210218 header [headerSize ] = '\0' ;
211219
212220 size_t valueSize = (size_t )rowEnd - (size_t )split ;
213221 char * value = (char * )malloc (valueSize + 1 );
222+ unpackedHeaders [headerNum + 1 ] = value ;
223+ if (!value ) {
224+ emscripten_fetch_free_unpacked_response_headers (unpackedHeaders );
225+ return NULL ;
226+ }
214227 strncpy (value , split + 1 , valueSize );
215228 value [valueSize ] = '\0' ;
216229
217- unpackedHeaders [headerNum ] = header ;
218- unpackedHeaders [headerNum + 1 ] = value ;
219-
220230 rowStart = rowEnd + 1 ;
221231 rowEnd = strchr (rowStart , '\n' );
222232 }
You can’t perform that action at this time.
0 commit comments