Prevent memory leak in fuzzer
This commit is contained in:
		| @@ -9,7 +9,7 @@ | ||||
| char *get_null_terminated(const uint8_t *data, size_t size) { | ||||
|     char *new_str = (char *)malloc(size+1); | ||||
|     if (new_str == NULL){ | ||||
|             return NULL; | ||||
| 	exit(1); | ||||
|     } | ||||
|     memcpy(new_str, data, size); | ||||
|     new_str[size] = '\0'; | ||||
| @@ -57,17 +57,19 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size){ | ||||
|     sprintf(filename, "/tmp/libfuzzer.%d", getpid()); | ||||
|  | ||||
|     FILE *fp = fopen(filename, "wb"); | ||||
|     if (!fp) { | ||||
|             return 0; | ||||
|     if (fp) { | ||||
| 	fwrite(data, size, 1, fp); | ||||
| 	fclose(fp); | ||||
|     } | ||||
|     fwrite(data, size, 1, fp); | ||||
|     fclose(fp); | ||||
|  | ||||
|     FILE *f = fopen(filename, "r"); | ||||
|     Str s = Strfgetall(f); | ||||
|     wc_Str_conv_with_detect(s, &from, from, to); | ||||
|     if (s != NULL) { | ||||
|             Strfree(s); | ||||
|     if (f) { | ||||
| 	Str s = Strfgetall(f); | ||||
| 	wc_Str_conv_with_detect(s, &from, from, to); | ||||
| 	if (s != NULL) { | ||||
| 	    Strfree(s); | ||||
| 	} | ||||
| 	fclose(f); | ||||
|     } | ||||
|  | ||||
|     unlink(filename); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user