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