]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fix core FINDING 2, FINDING 3, and FINDING 4 from Coverity's CONSTANT_EXPRESSION_RESU...
authorMark Michelson <mmichelson@digium.com>
Fri, 4 May 2012 15:48:44 +0000 (15:48 +0000)
committerMark Michelson <mmichelson@digium.com>
Fri, 4 May 2012 15:48:44 +0000 (15:48 +0000)
These three all are in RTP code that attempts to print the number of sequence number cycles
in an RTCP RR report. The code was masking out the upper 16 bits and then shifting the number
right by 16 bits. This led to an all zero result in all cases. The fix is to do the shift without
the bit masking.

(issue ASTERISK-19649)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@365298 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_rtp_asterisk.c

index 6d4eb50198db867ad43247b05f781fa3dede17a1..ab4ff8cef1dceb78c1b6ccda81e09a6750c81561 100644 (file)
@@ -1933,7 +1933,7 @@ static struct ast_frame *ast_rtcp_read(struct ast_rtp_instance *instance)
                                ast_verbose("  Fraction lost: %ld\n", (((long) ntohl(rtcpheader[i + 1]) & 0xff000000) >> 24));
                                ast_verbose("  Packets lost so far: %d\n", rtp->rtcp->reported_lost);
                                ast_verbose("  Highest sequence number: %ld\n", (long) (ntohl(rtcpheader[i + 2]) & 0xffff));
-                               ast_verbose("  Sequence number cycles: %ld\n", (long) (ntohl(rtcpheader[i + 2]) & 0xffff) >> 16);
+                               ast_verbose("  Sequence number cycles: %ld\n", (long) (ntohl(rtcpheader[i + 2])) >> 16);
                                ast_verbose("  Interarrival jitter: %u\n", rtp->rtcp->reported_jitter);
                                ast_verbose("  Last SR(our NTP): %lu.%010lu\n",(unsigned long) ntohl(rtcpheader[i + 4]) >> 16,((unsigned long) ntohl(rtcpheader[i + 4]) << 16) * 4096);
                                ast_verbose("  DLSR: %4.4f (sec)\n",ntohl(rtcpheader[i + 5])/65536.0);
@@ -1960,7 +1960,7 @@ static struct ast_frame *ast_rtcp_read(struct ast_rtp_instance *instance)
                                              (((long) ntohl(rtcpheader[i + 1]) & 0xff000000) >> 24),
                                              rtp->rtcp->reported_lost,
                                              (long) (ntohl(rtcpheader[i + 2]) & 0xffff),
-                                             (long) (ntohl(rtcpheader[i + 2]) & 0xffff) >> 16,
+                                             (long) (ntohl(rtcpheader[i + 2])) >> 16,
                                              rtp->rtcp->reported_jitter,
                                              (unsigned long) ntohl(rtcpheader[i + 4]) >> 16, ((unsigned long) ntohl(rtcpheader[i + 4]) << 16) * 4096,
                                              ntohl(rtcpheader[i + 5])/65536.0,
@@ -1984,7 +1984,7 @@ static struct ast_frame *ast_rtcp_read(struct ast_rtp_instance *instance)
                                              (((long) ntohl(rtcpheader[i + 1]) & 0xff000000) >> 24),
                                              rtp->rtcp->reported_lost,
                                              (long) (ntohl(rtcpheader[i + 2]) & 0xffff),
-                                             (long) (ntohl(rtcpheader[i + 2]) & 0xffff) >> 16,
+                                             (long) (ntohl(rtcpheader[i + 2])) >> 16,
                                              rtp->rtcp->reported_jitter,
                                              (unsigned long) ntohl(rtcpheader[i + 4]) >> 16,
                                              ((unsigned long) ntohl(rtcpheader[i + 4]) << 16) * 4096,