diff options
author | Bill Meier <wmeier@newsguy.com> | 2011-03-21 17:07:18 +0000 |
---|---|---|
committer | Bill Meier <wmeier@newsguy.com> | 2011-03-21 17:07:18 +0000 |
commit | f7d44fa2681a00936fdf20e309b0dba4cb71d106 (patch) | |
tree | aedad3e2bb24904561ec528cdc6440106a717949 /pcapio.c | |
parent | f09b320711ab393385d0ba1cd5101f14022eb2bf (diff) |
Don't close file handle if a file write error; (caller does the close)
Fixes "USE_AFTER_FREE" defect reported by Coverity Prevent.
svn path=/trunk/; revision=36226
Diffstat (limited to 'pcapio.c')
-rw-r--r-- | pcapio.c | 11 |
1 files changed, 5 insertions, 6 deletions
@@ -66,7 +66,7 @@ is a byte-swapped version of that. PCAP_NSEC_MAGIC is for Ulf Lamping's modified "libpcap" format, - which uses the same common file format as PCAP_MAGIC, but the + which uses the same common file format as PCAP_MAGIC, but the timestamps are saved in nanosecond resolution instead of microseconds. PCAP_SWAPPED_NSEC_MAGIC is a byte-swapped version of that. */ #define PCAP_MAGIC 0xa1b2c3d4 @@ -182,7 +182,6 @@ struct option { } else { \ *error_pointer = 0; \ } \ - fclose(file_pointer); \ return FALSE; \ } \ written_length += (long)nwritten; \ @@ -277,7 +276,7 @@ libpcap_write_session_header_block(FILE *fp, struct option option; guint32 block_total_length; const guint32 padding = 0; - + block_total_length = sizeof(struct shb) + sizeof(guint32); if ((strlen(appname) > 0) && (strlen(appname) < G_MAXUINT16)) { @@ -328,7 +327,7 @@ libpcap_write_interface_description_block(FILE *fp, block_total_length = sizeof(struct idb) + sizeof(guint32); if ((strlen(name) > 0) && (strlen(name) < G_MAXUINT16)) { - block_total_length += sizeof(struct option) + + block_total_length += sizeof(struct option) + (guint16)(ADD_PADDING(strlen(name) + 1)); } if ((strlen(filter) > 0) && (strlen(name) < G_MAXUINT16)) { @@ -433,7 +432,7 @@ libpcap_write_interface_statistics_block(FILE *fp, guint64 timestamp; guint64 counter; gboolean stats_retrieved; - + #ifdef _WIN32 /* * Current time, represented as 100-nanosecond intervals since @@ -506,7 +505,7 @@ libpcap_write_interface_statistics_block(FILE *fp, WRITE_DATA(fp, &option, sizeof(struct option), *bytes_written, err); } WRITE_DATA(fp, &block_total_length, sizeof(guint32), *bytes_written, err); - + return TRUE; } |