diff options
author | Jeff Morriss <jeff.morriss@ulticom.com> | 2008-07-09 20:16:24 +0000 |
---|---|---|
committer | Jeff Morriss <jeff.morriss@ulticom.com> | 2008-07-09 20:16:24 +0000 |
commit | 9bd70e0d1d060b6f0b1760c207301705ed48f13b (patch) | |
tree | 6150b289b7cf169e6c49d2a2453652cd1b9384c1 /wiretap/pcapng.c | |
parent | 34e3e26d071c66c18895ce30ac5c195c3e957a37 (diff) | |
download | wireshark-9bd70e0d1d060b6f0b1760c207301705ed48f13b.tar.gz wireshark-9bd70e0d1d060b6f0b1760c207301705ed48f13b.tar.bz2 wireshark-9bd70e0d1d060b6f0b1760c207301705ed48f13b.zip |
Don't cast a char[] into a guint32/64: the array may not be aligned correctly. This fixes a warning on Solaris/SPARC.
svn path=/trunk/; revision=25692
Diffstat (limited to 'wiretap/pcapng.c')
-rw-r--r-- | wiretap/pcapng.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/wiretap/pcapng.c b/wiretap/pcapng.c index d1b187c714..6541218753 100644 --- a/wiretap/pcapng.c +++ b/wiretap/pcapng.c @@ -555,7 +555,10 @@ pcapng_read_if_descr_block(FILE_T fh, pcapng_block_header_t *bh, pcapng_t *pn, break; case(8): /* if_speed */ if(oh.option_length == 8) { - wblock->data.if_descr.if_speed = *((guint64 *)option_content); + /* Don't cast a char[] into a guint64--the + * char[] may not be aligned correctly. + */ + memcpy(&wblock->data.if_descr.if_speed, option_content, sizeof(guint64)); if(pn->byte_swapped) wblock->data.if_descr.if_speed = BSWAP64(wblock->data.if_descr.if_speed); pcapng_debug1("pcapng_read_if_descr_block: if_speed %" G_GINT64_MODIFIER "u (bps)", wblock->data.if_descr.if_speed); @@ -708,7 +711,10 @@ pcapng_read_packet_block(FILE_T fh, pcapng_block_header_t *bh, pcapng_t *pn, wta break; case(2): /* pack_flags / epb_flags */ if(oh.option_length == 4) { - wblock->data.packet.pack_flags = *((guint32 *)option_content); + /* Don't cast a char[] into a guint32--the + * char[] may not be aligned correctly. + */ + memcpy(&wblock->data.packet.pack_flags, option_content, sizeof(guint32)); if(pn->byte_swapped) wblock->data.packet.pack_flags = BSWAP32(wblock->data.packet.pack_flags); pcapng_debug1("pcapng_read_if_descr_block: pack_flags %u (ignored)", wblock->data.packet.pack_flags); |