diff -ru mplayer-head-20060902-orig/libmpdemux/asfheader.c mplayer-head-20060902/libmpdemux/asfheader.c --- mplayer-head-20060902-orig/libmpdemux/asfheader.c Sat Sep 2 19:18:24 2006 +++ mplayer-head-20060902/libmpdemux/asfheader.c Sat Sep 2 21:30:20 2006 @@ -406,7 +406,8 @@ uint32_t max_bitrate; char *ptr = &hdr[pos]; mp_msg(MSGT_HEADER,MSGL_V,"============ ASF Stream group == START ===\n"); - stream_count = le2me_16(*(uint16_t*)ptr); + memcpy(&stream_count, ptr, sizeof(uint16_t)); // align value + stream_count = le2me_16(stream_count); ptr += sizeof(uint16_t); if (ptr > &hdr[hdr_len]) goto len_err_out; if(stream_count > 0) @@ -413,7 +414,8 @@ streams = malloc(2*stream_count*sizeof(uint32_t)); mp_msg(MSGT_HEADER,MSGL_V," stream count=[0x%x][%u]\n", stream_count, stream_count ); for( i=0 ; i &hdr[hdr_len]) goto len_err_out; memcpy(&max_bitrate, ptr, sizeof(uint32_t));// workaround unaligment bug on sparc