forked from osmocom/wireshark
Eliminate some double-frees.
The cfile_ error-reporting routines free err_info; the caller doesn't have to and, in fact, mustn't do so themselves. While we're at it, make sure wtap_seek_read() always zeroes out *err and nulls out *err_info, so the latter either points to a freshly-allocated string or is null. Change-Id: Idfe05a3ba2fbf2647ba14e483187617ee53e3c69 Reviewed-on: https://code.wireshark.org/review/21407 Reviewed-by: Guy Harris <guy@alum.mit.edu>
This commit is contained in:
parent
e3f49280de
commit
2a3f1a4f67
|
@ -1231,11 +1231,6 @@ process_cap_file(wtap *wth, const char *filename)
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
" (will continue anyway, checksums might be incorrect)\n");
|
" (will continue anyway, checksums might be incorrect)\n");
|
||||||
} else {
|
} else {
|
||||||
if (err_info != NULL) {
|
|
||||||
fprintf(stderr, "(%s)\n", err_info);
|
|
||||||
g_free(err_info);
|
|
||||||
}
|
|
||||||
|
|
||||||
cleanup_capture_info(&cf_info);
|
cleanup_capture_info(&cf_info);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
2
file.c
2
file.c
|
@ -1411,8 +1411,6 @@ cf_merge_files_to_tempfile(gpointer pd_window, char **out_filenamep,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free(err_info);
|
|
||||||
|
|
||||||
cf_callback_invoke(cf_cb_file_merge_finished, NULL);
|
cf_callback_invoke(cf_cb_file_merge_finished, NULL);
|
||||||
|
|
||||||
if (status != MERGE_OK) {
|
if (status != MERGE_OK) {
|
||||||
|
|
|
@ -494,8 +494,6 @@ main(int argc, char *argv[])
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free(err_info);
|
|
||||||
|
|
||||||
clean_exit:
|
clean_exit:
|
||||||
wtap_cleanup();
|
wtap_cleanup();
|
||||||
free_progdirs();
|
free_progdirs();
|
||||||
|
|
2
tshark.c
2
tshark.c
|
@ -3317,13 +3317,11 @@ process_cap_file(capture_file *cf, char *save_file, int out_file_type,
|
||||||
/* Error on pass 1 of two-pass processing. */
|
/* Error on pass 1 of two-pass processing. */
|
||||||
cfile_read_failure_message("TShark", cf->filename, err_pass1,
|
cfile_read_failure_message("TShark", cf->filename, err_pass1,
|
||||||
err_info_pass1);
|
err_info_pass1);
|
||||||
g_free(err_info_pass1);
|
|
||||||
}
|
}
|
||||||
if (err != 0) {
|
if (err != 0) {
|
||||||
/* Error on pass 2 of two-pass processing or on the only pass of
|
/* Error on pass 2 of two-pass processing or on the only pass of
|
||||||
one-pass processing. */
|
one-pass processing. */
|
||||||
cfile_read_failure_message("TShark", cf->filename, err, err_info);
|
cfile_read_failure_message("TShark", cf->filename, err, err_info);
|
||||||
g_free(err_info);
|
|
||||||
}
|
}
|
||||||
success = FALSE;
|
success = FALSE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1403,6 +1403,8 @@ wtap_seek_read(wtap *wth, gint64 seek_off,
|
||||||
phdr->pkt_encap = wth->file_encap;
|
phdr->pkt_encap = wth->file_encap;
|
||||||
phdr->pkt_tsprec = wth->file_tsprec;
|
phdr->pkt_tsprec = wth->file_tsprec;
|
||||||
|
|
||||||
|
*err = 0;
|
||||||
|
*err_info = NULL;
|
||||||
if (!wth->subtype_seek_read(wth, seek_off, phdr, buf, err, err_info))
|
if (!wth->subtype_seek_read(wth, seek_off, phdr, buf, err, err_info))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue