From: Igor Goncharovskiy Date: Sat, 8 Oct 2011 14:56:35 +0000 (+0000) Subject: Fix char array cast as short array in send_client() function (for ARM X-Git-Tag: 1.8.9.0-rc1~168 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d6ed815cc332f2c76336cba1a316874823522c4;p=thirdparty%2Fasterisk.git Fix char array cast as short array in send_client() function (for ARM platform) (closes issue ASTERISK-17314) Reported by: jjoshua git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@339830 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_unistim.c b/channels/chan_unistim.c index 0d48ee43eb..a557ae7287 100644 --- a/channels/chan_unistim.c +++ b/channels/chan_unistim.c @@ -802,7 +802,7 @@ static void send_client(int size, const unsigned char *data, struct unistimsessi { unsigned int tick; int buf_pos; - unsigned short *sdata = (unsigned short *) data; + unsigned short seq = ntohs(++pte->seq_server); ast_mutex_lock(&pte->lock); buf_pos = pte->last_buf_available; @@ -812,7 +812,7 @@ static void send_client(int size, const unsigned char *data, struct unistimsessi ast_mutex_unlock(&pte->lock); return; } - sdata[1] = ntohs(++(pte->seq_server)); + memcpy((void *)data + sizeof(unsigned short), (void *)&seq, sizeof(unsigned short)); pte->wsabufsend[buf_pos].len = size; memcpy(pte->wsabufsend[buf_pos].buf, data, size);