argus-2.0.0R

William Setzer William_Setzer at ncsu.edu
Fri Jan 19 10:36:34 EST 2001


"Carter Bullard" <carter at qosient.com> writes:
:
:    Argus-2.0.0R is now available.  This fixes a number of
: problems that contributed to the bug that William reported yesterday.
: Please give this a try.

Ironically, it now also core dumps at the STRUCTCAPTURED() fix
I reported yesterday.  I brute-forced the alignment issue and it
appears to work now.  (I probably missed some, as I only repaired
the immediate core dumps.)  Here's a patch.


William


--- Argus_app.c.orig	Thu Jan 18 17:36:56 2001
+++ Argus_app.c	Fri Jan 19 10:26:07 2001
@@ -48,8 +48,11 @@
    ipflow = (struct ArgusIPFlow *) &flowstr->flow;
 
    if (*state == ARGUS_START) {
-      struct rtphdr  *rtp  = (struct rtphdr *)  ArgusThisUpHdr;
-      struct rtcphdr *rtcp = (struct rtcphdr *) ArgusThisUpHdr;
+      struct rtphdr  rtb,  *rtp  = &rtb;
+      struct rtcphdr rtcb, *rtcp = &rtcb;
+
+      (void)memcpy((char *)ArgusThisUpHdr, (char *)&rtb,  sizeof(rtb));
+      (void)memcpy((char *)ArgusThisUpHdr, (char *)&rtcb, sizeof(rtcb));
 
       flowstr->state.status &= ~ARGUS_CONNECTED;
 
@@ -304,8 +307,10 @@
 
       case ARGUS_RTCP_FLOWTAG: {
          struct ArgusRTCPObject *rtcpObject = (struct ArgusRTCPObject *) flowstr->TransportDSRBuffer;
-         struct rtcphdr *rtcp = (struct rtcphdr *) ArgusThisUpHdr;
+	  struct rtcphdr rtcb, *rtcp = &rtcb;
          struct rtcphdr *ArgusThisRtcpHdr = NULL;
+
+	 (void)memcpy((char *)ArgusThisUpHdr, (char *)&rtcb, sizeof(rtcb));
 
          if (rtcpObject != NULL) {
             if (flowstr->state.rev == ArgusThisDir)



More information about the argus mailing list