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