]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fix char array cast as short array in send_client() function (for ARM
authorIgor Goncharovskiy <igor.goncharovsky@gmail.com>
Sat, 8 Oct 2011 14:56:35 +0000 (14:56 +0000)
committerIgor Goncharovskiy <igor.goncharovsky@gmail.com>
Sat, 8 Oct 2011 14:56:35 +0000 (14:56 +0000)
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

channels/chan_unistim.c

index 0d48ee43ebc64c86267076a46d27fd60250e6934..a557ae72878405c234242adb6698e6f65aa63e4d 100644 (file)
@@ -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);