diff options
| -rw-r--r-- | package/Config.in | 2 | ||||
| -rw-r--r-- | package/argus/Config.in | 9 | ||||
| -rw-r--r-- | package/argus/argus-3.0.0.rc.34-00-susv3-legacy.patch | 1278 | ||||
| -rw-r--r-- | package/argus/argus.mk | 92 | 
4 files changed, 1381 insertions, 0 deletions
| diff --git a/package/Config.in b/package/Config.in index ecf982cf6..dc928e3e4 100644 --- a/package/Config.in +++ b/package/Config.in @@ -25,6 +25,7 @@ source "package/tar/Config.in"  comment "Other stuff"  source "package/acpid/Config.in" +source "package/argus/Config.in"  source "package/asterisk/Config.in"  source "package/at/Config.in"  source "package/autoconf/Config.in" @@ -66,6 +67,7 @@ source "package/iproute2/Config.in"  source "package/ipsec-tools/Config.in"  source "package/iptables/Config.in"  source "package/jpeg/Config.in" +source "package/kexec/Config.in"  source "package/less/Config.in"  source "package/libcgi/Config.in"  source "package/libcgicc/Config.in" diff --git a/package/argus/Config.in b/package/argus/Config.in new file mode 100644 index 000000000..958ecdda8 --- /dev/null +++ b/package/argus/Config.in @@ -0,0 +1,9 @@ +config BR2_PACKAGE_ARGUS +	bool "argus" +	default n +	select BR2_PACKAGE_LIBPCAP +	help +	  A Real Time Flow Monitor-based audit engine. + +	  http://qosient.com/argus/ + diff --git a/package/argus/argus-3.0.0.rc.34-00-susv3-legacy.patch b/package/argus/argus-3.0.0.rc.34-00-susv3-legacy.patch new file mode 100644 index 000000000..a439050a1 --- /dev/null +++ b/package/argus/argus-3.0.0.rc.34-00-susv3-legacy.patch @@ -0,0 +1,1278 @@ +diff -rup argus-3.0.0.rc.34.orig/argus/ArgusApp.c argus-3.0.0.rc.34/argus/ArgusApp.c +--- argus-3.0.0.rc.34.orig/argus/ArgusApp.c	2006-08-18 19:15:14.000000000 +0200 ++++ argus-3.0.0.rc.34/argus/ArgusApp.c	2006-12-20 16:21:04.000000000 +0100 +@@ -196,9 +196,9 @@ ArgusUpdateAppState (struct ArgusModeler +                                     net->hdr.argus_dsrvl8.qual = 0; +                                     net->hdr.argus_dsrvl8.len  = ((sizeof(struct ArgusRTCPObject) + 3)/4) + 1; +                                     if (model->ArgusThisDir) { +-                                       bcopy ((char *) rtcp, (char *)&rtcpObject->src, sizeof(*rtcp)); ++                                       memmove ((char *)&rtcpObject->src, (char *) rtcp, sizeof(*rtcp)); +                                     } else { +-                                       bcopy ((char *) rtcp, (char *)&rtcpObject->dst, sizeof(*rtcp)); ++                                       memmove ((char *)&rtcpObject->dst, (char *) rtcp, sizeof(*rtcp)); +                                     } +  +                                  } else { +@@ -215,9 +215,9 @@ ArgusUpdateAppState (struct ArgusModeler +                                        rtp->rh_ssrc = ntohl(rtp->rh_ssrc); +  +                                        if (model->ArgusThisDir) { +-                                          bcopy ((char *) rtp, (char *)&rtpObject->src, sizeof(*rtp)); ++                                          memmove ((char *)&rtpObject->src, (char *) rtp, sizeof(*rtp)); +                                        } else { +-                                          bcopy ((char *) rtp, (char *)&rtpObject->dst, sizeof(*rtp)); ++                                          memmove ((char *)&rtpObject->dst, (char *) rtp, sizeof(*rtp)); +                                        } +                                     } +                                  } +@@ -301,7 +301,7 @@ ArgusUpdateAppState (struct ArgusModeler +  +                   if ((bytes = model->ArgusThisSnapEnd - model->ArgusThisUpHdr) > 0) { +                      thislen = (thislen > bytes) ? bytes : thislen; +-                     bcopy (model->ArgusThisUpHdr, &((char *)&user->array)[user->count], thislen); ++                     memmove (&((char *)&user->array)[user->count], model->ArgusThisUpHdr, thislen); +                      user->count += thislen; +                   } +                } +@@ -358,7 +358,7 @@ ArgusUpdateRTPState (struct ArgusModeler +                ArgusThisRtpHdr = &rtpObject->dst; +  +             if (!(ArgusThisRtpHdr->rh_seq)) { +-               bcopy ((char *) rtp, (char *)ArgusThisRtpHdr, sizeof(*rtp)); ++               memmove ((char *)ArgusThisRtpHdr, (char *) rtp, sizeof(*rtp)); +             } else { +                if (!(rtp->rh_ssrc) || (ArgusThisRtpHdr->rh_ssrc != rtp->rh_ssrc)) +                   flowstr->dsrs[ARGUS_NETWORK_INDEX] = NULL; +@@ -404,7 +404,7 @@ ArgusUpdateRTPState (struct ArgusModeler +                } +             } +   +-            bcopy ((char *) rtp, (char *) ArgusThisRtpHdr, sizeof(*rtp)); ++            memmove ((char *) ArgusThisRtpHdr, (char *) rtp, sizeof(*rtp)); +        +             model->ArgusThisUpHdr = (unsigned char *)(rtp + 1) + offset; +             model->ArgusThisLength -= (sizeof(struct rtphdr) + offset); +diff -rup argus-3.0.0.rc.34.orig/argus/ArgusArp.c argus-3.0.0.rc.34/argus/ArgusArp.c +--- argus-3.0.0.rc.34.orig/argus/ArgusArp.c	2006-08-18 19:15:14.000000000 +0200 ++++ argus-3.0.0.rc.34/argus/ArgusArp.c	2006-12-20 16:12:05.000000000 +0100 +@@ -81,8 +81,8 @@ ArgusCreateArpFlow (struct ArgusModelerS +          case ARPOP_REQUEST: +             retn->hdr.argus_dsrvl8.qual = ARGUS_TYPE_ARP; +             srcehost = (unsigned char *) &model->ArgusThisEpHdr->ether_shost; +-            bcopy ((char *)&arp->arp_tpa, &arp_tpa, sizeof(arp_tpa)); +-            bcopy ((char *)&arp->arp_spa, &arp_spa, sizeof(arp_spa)); ++            memmove (&arp_tpa, (char *)&arp->arp_tpa, sizeof(arp_tpa)); ++            memmove (&arp_spa, (char *)&arp->arp_spa, sizeof(arp_spa)); + #ifdef _LITTLE_ENDIAN +             arp_spa = ntohl(arp_spa); +             arp_tpa = ntohl(arp_tpa); +@@ -90,7 +90,7 @@ ArgusCreateArpFlow (struct ArgusModelerS +             if (arp_spa > arp_tpa) +                model->state |= ARGUS_DIRECTION; +  +-            bcopy (srcehost, retn->arp_flow.etheraddr, sizeof (retn->arp_flow.etheraddr)); ++            memmove (retn->arp_flow.etheraddr, srcehost, sizeof (retn->arp_flow.etheraddr)); +  +             retn->arp_flow.arp_tpa = arp_tpa; +             retn->arp_flow.arp_spa = arp_spa; +@@ -101,8 +101,8 @@ ArgusCreateArpFlow (struct ArgusModelerS +             retn->hdr.argus_dsrvl8.qual = ARGUS_TYPE_ARP; +             srcehost = (unsigned char *) &model->ArgusThisEpHdr->ether_dhost; +  +-            bcopy ((char *)&arp->arp_spa, &arp_spa, sizeof(arp_tpa)); +-            bcopy ((char *)&arp->arp_tpa, &arp_tpa, sizeof(arp_spa)); ++            memmove (&arp_spa, (char *)&arp->arp_spa, sizeof(arp_tpa)); ++            memmove (&arp_tpa, (char *)&arp->arp_tpa, sizeof(arp_spa)); + #ifdef _LITTLE_ENDIAN +             arp_spa = ntohl(arp_spa); +             arp_tpa = ntohl(arp_tpa); +@@ -111,7 +111,7 @@ ArgusCreateArpFlow (struct ArgusModelerS +             if (arp_tpa > arp_spa) +                model->state |= ARGUS_DIRECTION; +     +-            bcopy (srcehost, retn->arp_flow.etheraddr, sizeof (retn->arp_flow.etheraddr)); ++            memmove (retn->arp_flow.etheraddr, srcehost, sizeof (retn->arp_flow.etheraddr)); +  +             retn->arp_flow.arp_tpa = arp_tpa; +             retn->arp_flow.arp_spa = arp_spa; +@@ -120,29 +120,29 @@ ArgusCreateArpFlow (struct ArgusModelerS +  +          case REVARP_REQUEST: +             retn->hdr.argus_dsrvl8.qual = ARGUS_TYPE_RARP; +-            bcopy ((char *)&arp->arp_tpa, &arp_tpa, sizeof(arp_tpa)); ++            memmove (&arp_tpa, (char *)&arp->arp_tpa, sizeof(arp_tpa)); + #ifdef _LITTLE_ENDIAN +             arp_tpa = ntohl(arp_tpa); + #endif +  +             srcehost = (unsigned char *)&THA(arp); +             tarehost = (unsigned char *)&SHA(arp); +-            bcopy ((char *)&arp->arp_tpa, &retn->rarp_flow.arp_tpa, sizeof(arp_tpa)); +-            bcopy (srcehost, retn->rarp_flow.srceaddr, sizeof (retn->rarp_flow.srceaddr)); +-            bcopy (tarehost, retn->rarp_flow.tareaddr, sizeof (retn->rarp_flow.tareaddr)); ++            memmove (&retn->rarp_flow.arp_tpa, (char *)&arp->arp_tpa, sizeof(arp_tpa)); ++            memmove (retn->rarp_flow.srceaddr, srcehost, sizeof (retn->rarp_flow.srceaddr)); ++            memmove (retn->rarp_flow.tareaddr, tarehost, sizeof (retn->rarp_flow.tareaddr)); +             break; +  +          case REVARP_REPLY: +             retn->hdr.argus_dsrvl8.qual = ARGUS_TYPE_RARP; +-            bcopy ((char *)&arp->arp_tpa, &arp_tpa, sizeof(arp_tpa)); ++            memmove (&arp_tpa, (char *)&arp->arp_tpa, sizeof(arp_tpa)); + #ifdef _LITTLE_ENDIAN +             arp_tpa = ntohl(arp_tpa); + #endif +             srcehost = (unsigned char *)&SHA(arp); +             tarehost = (unsigned char *)&THA(arp); +-            bcopy ((char *)&arp->arp_tpa, &retn->rarp_flow.arp_tpa, sizeof(arp_tpa)); +-            bcopy (srcehost, retn->rarp_flow.srceaddr, sizeof (retn->rarp_flow.srceaddr)); +-            bcopy (tarehost, retn->rarp_flow.tareaddr, sizeof (retn->rarp_flow.tareaddr)); ++            memmove (&retn->rarp_flow.arp_tpa, (char *)&arp->arp_tpa, sizeof(arp_tpa)); ++            memmove (retn->rarp_flow.srceaddr, srcehost, sizeof (retn->rarp_flow.srceaddr)); ++            memmove (retn->rarp_flow.tareaddr, tarehost, sizeof (retn->rarp_flow.tareaddr)); +             break; +       } +    } +@@ -177,7 +177,7 @@ ArgusUpdateArpState (struct ArgusModeler +             break; +  +          case ARPOP_REPLY: +-            bcopy ((unsigned char *)&SHA(arp), arpobj->respaddr, 6); ++            memmove (arpobj->respaddr, (unsigned char *)&SHA(arp), 6); +             break; +       } +    } +diff -rup argus-3.0.0.rc.34.orig/argus/ArgusEsp.c argus-3.0.0.rc.34/argus/ArgusEsp.c +--- argus-3.0.0.rc.34.orig/argus/ArgusEsp.c	2006-08-18 19:15:14.000000000 +0200 ++++ argus-3.0.0.rc.34/argus/ArgusEsp.c	2006-12-20 15:57:17.000000000 +0100 +@@ -123,7 +123,7 @@ ArgusUpdateESPState (struct ArgusModeler +  +          flowstr->dsrs[ARGUS_NETWORK_INDEX] = (void *) net; +  +-         bzero ((char *)espObj, sizeof(*espObj)); ++         memset ((char *)espObj, 0, sizeof(*espObj)); +          flowstr->timeout = ARGUS_IPTIMEOUT; +  +          espObj->spi     = esp->spi; +diff -rup argus-3.0.0.rc.34.orig/argus/ArgusFrag.c argus-3.0.0.rc.34/argus/ArgusFrag.c +--- argus-3.0.0.rc.34.orig/argus/ArgusFrag.c	2006-08-18 19:15:14.000000000 +0200 ++++ argus-3.0.0.rc.34/argus/ArgusFrag.c	2006-12-20 16:18:25.000000000 +0100 +@@ -232,7 +232,7 @@ ArgusUpdateFRAGState (struct ArgusModele +                            if (prvfragOffset != NULL) { +                               prvfragOffset->nxt = fragOffset->nxt; +                            } else { +-                              bcopy((char *) fragOffset->nxt , (char *)&frag->offsets, sizeof(frag->offsets)); ++                              memmove((char *)&frag->offsets, (char *) fragOffset->nxt, sizeof(frag->offsets)); +                            } + /* else just update the prv fragments pointer to toss this one */ +                         } else { +diff -rup argus-3.0.0.rc.34.orig/argus/ArgusIcmp.c argus-3.0.0.rc.34/argus/ArgusIcmp.c +--- argus-3.0.0.rc.34.orig/argus/ArgusIcmp.c	2006-10-30 19:26:51.000000000 +0100 ++++ argus-3.0.0.rc.34/argus/ArgusIcmp.c	2006-12-20 16:07:09.000000000 +0100 +@@ -159,8 +159,9 @@ ArgusCreateICMPFlow (struct ArgusModeler +  +                         case ICMP_UNREACH_NET: +                         case ICMP_UNREACH_HOST: +-                           bcopy ((char *) &icmp->icmp_ip.ip_dst.s_addr, +-                                           (char *)&icmpFlow->id, sizeof (int)); ++                           memmove ((char *)&icmpFlow->id, ++					   (char*) &icmp->icmp_ip.ip_dst.s_addr, ++                                           sizeof (int)); +                            break; +                      } +                      break; +@@ -174,7 +175,7 @@ ArgusCreateICMPFlow (struct ArgusModeler +  +                         case ICMP_REDIRECT_NET: +                         case ICMP_REDIRECT_HOST: +-                           bcopy ((char *) &icmp->icmp_ip.ip_dst.s_addr, (char *)&icmpFlow->id, sizeof (int)); ++                           memmove ((char *)&icmpFlow->id, (char *) &icmp->icmp_ip.ip_dst.s_addr, sizeof (int)); +                            break; +                      } +                      break; +@@ -220,7 +221,7 @@ ArgusUpdateICMPState (struct ArgusModele +          net->hdr.subtype          = ARGUS_ICMP_DSR; +          net->hdr.argus_dsrvl8.qual = 0; +          net->hdr.argus_dsrvl8.len  = ((sizeof(struct ArgusICMPObject)+3))/4 + 1; +-         bzero ((char *)icmpObj, sizeof(*icmpObj)); ++         memset ((char *)icmpObj, 0, sizeof(*icmpObj)); +  +          icmpObj->icmp_type = icmp->icmp_type; +          icmpObj->icmp_code = icmp->icmp_code; +@@ -314,7 +315,7 @@ ArgusUpdateICMPState (struct ArgusModele +                   } +  +                   dsr->argus_dsrvl8.len  = (sizeof (struct ArgusIcmpStruct) + 3)/4 + 1; +-                  bcopy ((char *) icmpObj, (char *) (dsr + 1), sizeof (*icmpObj)); ++                  memmove ((char *) (dsr + 1), (char *) icmpObj, sizeof (*icmpObj)); +                   flow->dsrs[ARGUS_ICMP_INDEX] = dsr; +                   flow->dsrindex |= 1 << ARGUS_ICMP_INDEX; +  +@@ -361,7 +362,7 @@ ArgusUpdateICMPv6State (struct ArgusMode +          net->hdr.subtype          = ARGUS_ICMP_DSR; +          net->hdr.argus_dsrvl8.qual = 0; +          net->hdr.argus_dsrvl8.len  = ((sizeof(struct ArgusICMPObject)+3))/4 + 1; +-         bzero ((char *)icmpObj, sizeof(*icmpObj)); ++         memset ((char *)icmpObj, 0, sizeof(*icmpObj)); +  +          icmpObj->icmp_type = icmpv6->icmp6_type; +          icmpObj->icmp_code = icmpv6->icmp6_code; +diff -rup argus-3.0.0.rc.34.orig/argus/ArgusMac.c argus-3.0.0.rc.34/argus/ArgusMac.c +--- argus-3.0.0.rc.34.orig/argus/ArgusMac.c	2006-08-18 19:15:14.000000000 +0200 ++++ argus-3.0.0.rc.34/argus/ArgusMac.c	2006-12-20 16:18:44.000000000 +0100 +@@ -44,7 +44,7 @@ ArgusMacFlowRecord (struct ArgusFlowStru +    struct ArgusMacStruct *mac = (struct ArgusMacStruct *) flowstr->MacDSRBuffer; +        +    if (mac && ((length = argus->ahdr.length) > 0)) { +-      bcopy ((char *)mac, &((char *)argus)[argus->ahdr.length], sizeof(*mac)); ++      memmove (&((char *)argus)[argus->ahdr.length], (char *)mac, sizeof(*mac)); +       argus->ahdr.length += sizeof(*mac); +    } + } +diff -rup argus-3.0.0.rc.34.orig/argus/ArgusModeler.c argus-3.0.0.rc.34/argus/ArgusModeler.c +--- argus-3.0.0.rc.34.orig/argus/ArgusModeler.c	2006-09-26 06:28:16.000000000 +0200 ++++ argus-3.0.0.rc.34/argus/ArgusModeler.c	2006-12-20 16:17:19.000000000 +0100 +@@ -112,7 +112,7 @@ void *ArgusQueueManager(void *); + void + ArgusInitModeler(struct ArgusModelerStruct *model) + { +-   bzero (model->ArgusTimeOutQueues, sizeof(model->ArgusTimeOutQueues)); ++   memset (model->ArgusTimeOutQueues, 0, sizeof(model->ArgusTimeOutQueues)); +    model->ArgusInProtocol = 1; +    model->ArgusUpdateInterval.tv_usec = 200000; +    model->ArgusMajorVersion = VERSION_MAJOR; +@@ -525,7 +525,7 @@ ArgusProcessPacketHdrs (struct ArgusMode +                model->ArgusThisEncaps |= ARGUS_ENCAPS_LLC; +  +                llc = model->ArgusThisLLC; +-               bcopy((char *) ptr, (char *) llc, sizeof (struct llc)); ++               memmove((char *) llc, (char *) ptr, sizeof (struct llc)); +  + #define ARGUS_IPX_TAG         100 +  +@@ -772,7 +772,7 @@ ArgusProcessEtherHdr (struct ArgusModele +          model->ArgusThisEncaps |= ARGUS_ENCAPS_LLC; +  +          llc = model->ArgusThisLLC; +-         bcopy((char *) ptr, (char *) llc, sizeof (struct llc)); ++         memmove((char *) llc, (char *) ptr, sizeof (struct llc)); +  + #define ARGUS_IPX_TAG         100 +  +@@ -1314,11 +1314,11 @@ ArgusCreateFlow (struct ArgusModelerStru +                   } +  +                   if (dstgteq) { +-                     bcopy ((char *) ep, (char *)&model->ArgusThisFlow->mac_flow.ehdr, sizeof (struct ether_header)); ++                     memmove ((char *)&model->ArgusThisFlow->mac_flow.ehdr, (char *) ep, sizeof (struct ether_header)); +                   } else { +                      model->state |= ARGUS_DIRECTION; +-                     bcopy ((char *)&ep->ether_shost, (char *)&model->ArgusThisFlow->mac_flow.ehdr.ether_dhost, ETH_ALEN); +-                     bcopy ((char *)&ep->ether_dhost, (char *)&model->ArgusThisFlow->mac_flow.ehdr.ether_shost, ETH_ALEN); ++                     memmove ((char *)&model->ArgusThisFlow->mac_flow.ehdr.ether_dhost, (char *)&ep->ether_shost, ETH_ALEN); ++                     memmove ((char *)&model->ArgusThisFlow->mac_flow.ehdr.ether_shost, (char *)&ep->ether_dhost, ETH_ALEN); +                      model->ArgusThisFlow->mac_flow.ehdr.ether_type = ep->ether_type; +                   } +  +@@ -1418,7 +1418,7 @@ ArgusNewFlow (struct ArgusModelerStruct  +       retn->qhdr.qtime.tv_sec  = 0; +       retn->qhdr.qtime.tv_usec = 0; +  +-      bzero ((char *)retn->dsrs, sizeof(retn->dsrs)); ++      memset ((char *)retn->dsrs, 0, sizeof(retn->dsrs)); +  +       retn->dsrs[ARGUS_TRANSPORT_INDEX] = &retn->canon.trans.hdr; +       trans = (struct ArgusTransportStruct *) retn->dsrs[ARGUS_TRANSPORT_INDEX]; +@@ -1429,7 +1429,7 @@ ArgusNewFlow (struct ArgusModelerStruct  +  +       retn->dsrs[ARGUS_TIME_INDEX] = (struct ArgusDSRHeader *) &retn->canon.time.hdr; +       dtime = (struct ArgusTimeObject *) retn->dsrs[ARGUS_TIME_INDEX]; +-      bzero((char *)dtime, sizeof(*dtime)); ++      memset((char *)dtime, 0, sizeof(*dtime)); +       dtime->hdr.type            = ARGUS_TIME_DSR; +       dtime->hdr.subtype         = ARGUS_TIME_ABSOLUTE_TIMESTAMP; +       dtime->hdr.argus_dsrvl8.qual = ARGUS_TYPE_UTC_MICROSECONDS; +@@ -1446,10 +1446,10 @@ ArgusNewFlow (struct ArgusModelerStruct  +       retn->dsrs[ARGUS_FLOW_INDEX] = (struct ArgusDSRHeader *) &retn->canon.flow.hdr; +       retn->canon.flow.hdr = flow->hdr; +  +-      bcopy ((char *)&flow->flow_un, (char *)&retn->canon.flow.flow_un, (flow->hdr.argus_dsrvl8.len - 1) * 4); ++      memmove ((char *)&retn->canon.flow.flow_un, (char *)&flow->flow_un, (flow->hdr.argus_dsrvl8.len - 1) * 4); +       retn->dsrindex |= 1 << ARGUS_FLOW_INDEX; +  +-      bzero ((char *)&retn->canon.metric, sizeof(retn->canon.metric)); ++      memset ((char *)&retn->canon.metric, 0, sizeof(retn->canon.metric)); + /* +       if (retn->status & ARGUS_DIRECTION) +          retn->dsrs[ARGUS_FLOW_INDEX]->subtype |= ARGUS_REVERSE; +@@ -1573,7 +1573,7 @@ ArgusUpdateBasicFlow (struct ArgusModele +          mac->hdr.argus_dsrvl8.len    = 5; +  +          if (model->ArgusThisEpHdr != NULL) +-            bcopy ((char *)model->ArgusThisEpHdr, (char *)&mac->mac_union.ether, sizeof(struct ether_header)); ++            memmove ((char *)&mac->mac_union.ether, (char *)model->ArgusThisEpHdr, sizeof(struct ether_header)); +  +          flow->dsrindex |= 1 << ARGUS_MAC_INDEX; +  +@@ -1652,8 +1652,8 @@ ArgusUpdateBasicFlow (struct ArgusModele +          jitter->hdr.argus_dsrvl8.len       = 1; +          flow->dsrindex |= 1 << ARGUS_JITTER_INDEX; +  +-         bzero((char *)&jitter->act,  sizeof(struct ArgusJitterObject)); +-         bzero((char *)&jitter->idle, sizeof(struct ArgusJitterObject)); ++         memset((char *)&jitter->act, 0, sizeof(struct ArgusJitterObject)); ++         memset((char *)&jitter->idle, 0, sizeof(struct ArgusJitterObject)); +  +          memset(&flow->stime.act,  0, sizeof(flow->stime.act)); +          memset(&flow->stime.idle, 0, sizeof(flow->stime.idle)); +@@ -2094,7 +2094,7 @@ ArgusGenerateRecord (struct ArgusModeler +          int i, x, len = 0, type = 0, dsrlen = 1; +          struct ArgusDSRHeader *dsr; +  +-         bcopy ((char *)&rec->hdr, (char *)&retn->hdr, sizeof(retn->hdr)); ++         memmove ((char *)&retn->hdr, (char *)&rec->hdr, sizeof(retn->hdr)); +          dsrptr = (unsigned int *)&retn->ar_un.mar; +  +          if ((rec->canon.trans.seqnum = model->ArgusSeqNum++) == 0xFFFFFFFF) +@@ -2441,7 +2441,7 @@ ArgusGenerateRecord (struct ArgusModeler +          retn->hdr.len = dsrlen; +  +       } else  { +-         bcopy ((char *)&rec->canon, (char *) retn, rec->hdr.len * 4); ++         memmove ((char *) retn, (char *)&rec->canon, rec->hdr.len * 4); +          retn->hdr = rec->hdr; +       } +           +@@ -2470,8 +2470,8 @@ ArgusCopyRecordStruct (struct ArgusRecor +  +    if (rec) { +       if ((retn = (struct ArgusRecordStruct *) ArgusMallocListRecord (sizeof(*retn))) != NULL) { +-         bcopy ((char *)&rec->hdr, (char *)&retn->hdr, sizeof (rec->hdr)); +-         bcopy ((char *)&rec->canon, (char *)&retn->canon, sizeof (rec->canon)); ++         memmove ((char *)&retn->hdr, (char *)&rec->hdr, sizeof (rec->hdr)); ++         memmove ((char *)&retn->canon, (char *)&rec->canon, sizeof (rec->canon)); +  +          if ((retn->dsrindex = rec->dsrindex)) { +             for (i = 0; i < ARGUSMAXFLOWTYPE; i++) { +@@ -2494,7 +2494,7 @@ ArgusCopyRecordStruct (struct ArgusRecor +                         struct ArgusDataStruct *user = (struct ArgusDataStruct *) rec->dsrs[i]; +                         if (user->count > 0) { +                            if ((retn->dsrs[i] = (void *) ArgusCalloc(1, (8 + user->size))) != NULL) { +-                              bcopy ((char *)rec->dsrs[i], (char *)retn->dsrs[i], 8 + user->size); ++                              memmove ((char *)retn->dsrs[i], (char *)rec->dsrs[i], 8 + user->size); +                            } else { +                               retn->dsrindex &= ~(0x01 << i); +                            } +@@ -2541,7 +2541,7 @@ ArgusGenerateListRecord (struct ArgusMod +  +    if ((retn = (struct ArgusRecordStruct *) ArgusMallocListRecord (sizeof(*retn))) != NULL) { +       if (flow) { +-         bcopy ((char *)&flow->canon, (char *)&retn->canon, sizeof (flow->canon)); ++         memmove ((char *)&retn->canon, (char *)&flow->canon, sizeof (flow->canon)); +          if ((retn->dsrindex = flow->dsrindex) != 0) { +             for (i = 0; i < ARGUSMAXFLOWTYPE; i++) { +                if (flow->dsrs[i] != NULL) { +@@ -2691,8 +2691,8 @@ ArgusGenerateListRecord (struct ArgusMod +  +       } else { +          retn->dsrindex = 0; +-         bzero ((char *)&retn->canon, sizeof(retn->canon)); +-         bzero ((char *)retn->dsrs, sizeof(retn->dsrs)); ++         memset ((char *)&retn->canon, 0, sizeof(retn->canon)); ++         memset ((char *)retn->dsrs, 0, sizeof(retn->dsrs)); +       } +  +       if (!(flow) && ((state == ARGUS_STOP) || (state == ARGUS_ERROR))) { +@@ -3017,7 +3017,7 @@ ArgusCreateIPv4Flow (struct ArgusModeler +       model->ArgusSnapLength -= hlen; +  +       if (model->ArgusFlowKey & ARGUS_FLOW_KEY_CLASSIC5TUPLE) { +-         bzero ((char *)model->ArgusThisFlow, sizeof(*model->ArgusThisFlow)); ++         memset ((char *)model->ArgusThisFlow, 0, sizeof(*model->ArgusThisFlow)); +          model->ArgusThisFlow->hdr.type             = ARGUS_FLOW_DSR; +          model->ArgusThisFlow->hdr.subtype          = ARGUS_FLOW_CLASSIC5TUPLE; +          model->ArgusThisFlow->hdr.argus_dsrvl8.qual = ARGUS_TYPE_IPV4; +diff -rup argus-3.0.0.rc.34.orig/argus/ArgusOutput.c argus-3.0.0.rc.34/argus/ArgusOutput.c +--- argus-3.0.0.rc.34.orig/argus/ArgusOutput.c	2006-10-16 21:57:15.000000000 +0200 ++++ argus-3.0.0.rc.34/argus/ArgusOutput.c	2006-12-20 16:21:26.000000000 +0100 +@@ -530,7 +530,7 @@ ArgusEstablishListen (struct ArgusOutput + #endif +          if ((host = gethostbyname (bindIP)) != NULL) { +             if ((host->h_addrtype == AF_INET) && (host->h_length == 4)) { +-               bcopy ((char *) *host->h_addr_list, (char *)&sin.sin_addr.s_addr, host->h_length); ++               memmove ((char *)&sin.sin_addr.s_addr, (char *) *host->h_addr_list, host->h_length); +             } else +                ArgusLog (LOG_ERR, "ArgusEstablishListen() unsupported bind address %s", bindIP); +          } else +@@ -600,7 +600,7 @@ ArgusCheckClientStatus (struct ArgusOutp +             if (output->clientnum < ARGUS_MAXLISTEN) { +                int i = output->clientnum++; +  +-               bzero(&output->clients[i], sizeof(output->clients[i])); ++               memset(&output->clients[i], 0, sizeof(output->clients[i])); +                output->clients[i].fd = fd; + #ifdef ARGUSDEBUG +                ArgusDebug (2, "ArgusCheckClientStatus() new client %d\n", i); +@@ -754,7 +754,7 @@ ArgusCheckClientMessage (struct ArgusOut +          ArgusLog (LOG_ERR, "ArgusCheckClientMessage(0x%x, %d) sasl_getprop %s\n", client, fd, strerror(errno)); + #endif /* ARGUS_SASL */ +  +-   bzero(buf, MAXSTRLEN); ++   memset(buf, 0, MAXSTRLEN); +  +    if (value == 0) +       value = MAXSTRLEN; +@@ -791,8 +791,8 @@ ArgusCheckClientMessage (struct ArgusOut + #endif +       if (outputlen > 0) { +          if (outputlen < MAXSTRLEN) { +-            bzero (buf, MAXSTRLEN); +-            bcopy (outputbuf, buf, outputlen); ++            memset (buf, 0, MAXSTRLEN); ++            memmove (buf, outputbuf, outputlen); +             cnt = outputlen; +          } else +             ArgusLog (LOG_ERR, "ArgusCheckClientMessage(0x%x, %d) sasl_decode returned %d bytes\n", client, fd, outputlen); +diff -rup argus-3.0.0.rc.34.orig/argus/ArgusSource.c argus-3.0.0.rc.34/argus/ArgusSource.c +--- argus-3.0.0.rc.34.orig/argus/ArgusSource.c	2006-10-30 19:53:29.000000000 +0100 ++++ argus-3.0.0.rc.34/argus/ArgusSource.c	2006-12-20 16:05:50.000000000 +0100 +@@ -92,11 +92,11 @@ ArgusInitSource (struct ArgusSourceStruc +  +    src->ArgusInterfaces = 0; +    for (i = 0; i < ARGUS_MAXINTERFACE; i++) +-      bzero ((char *)&src->ArgusInterface[i], sizeof(struct ArgusInterfaceStruct)); ++      memset ((char *)&src->ArgusInterface[i], 0, sizeof(struct ArgusInterfaceStruct)); +  +    if (src->ArgusRfileList != NULL) { +       setuid(getuid()); +-      bzero(errbuf, sizeof(errbuf)); ++      memset(errbuf, 0, sizeof(errbuf)); +  +       if (ArgusOpenInputPacketFile(src, errbuf) == 0) { +       } +@@ -156,7 +156,7 @@ ArgusInitSource (struct ArgusSourceStruc +       src->ArgusInputFilter = cmdbuf; +    } +  +-   bzero ((char *) &src->ArgusInterface[0].ArgusFilter, sizeof (struct bpf_program)); ++   memset ((char *) &src->ArgusInterface[0].ArgusFilter, 0, sizeof (struct bpf_program)); +  +    if (pcap_compile (src->ArgusInterface[0].ArgusPd, &src->ArgusInterface[0].ArgusFilter, src->ArgusInputFilter, getArgusOflag(src), src->ArgusInterface[0].ArgusNetMask) < 0) +       ArgusLog (LOG_ERR, "%s\n", pcap_geterr (src->ArgusInterface[0].ArgusPd)); +@@ -421,7 +421,7 @@ ArgusMoatTshRead (struct ArgusSourceStru +    int retn = 0, length = 0; +    struct ip *iphdr = NULL; +  +-   bzero (ArgusMoatPktHdr, sizeof(MoatTshBuffer)); ++   memset (ArgusMoatPktHdr, 0, sizeof(MoatTshBuffer)); +   +    if ((retn = read(pcap_fileno(src->ArgusInterface[0].ArgusPd), ArgusMoatPktHdr, ARGUSMOATLEN)) == ARGUSMOATLEN) { +       ArgusMoatPktHdr->interface = 0; +@@ -666,7 +666,7 @@ ArgusArcnetPacket (u_char *user, const s +    caplen -= archdrlen; +    p += archdrlen; +     +-   bcopy (p, (char *)ep, caplen); ++   memmove ((char *)ep, p, caplen); +  +    src->ArgusModel->ArgusThisLength  = length; +    src->ArgusModel->ArgusSnapLength  = caplen; +@@ -973,8 +973,8 @@ Argusextract_fddi_addrs(const struct fdd +          fsrc[i] = fddi_bit_swap[fp->fddi_shost[i]]; +    } +    else { +-      bcopy ((char *) fp->fddi_dhost, fdst, 6); +-      bcopy ((char *) fp->fddi_shost, fsrc, 6); ++      memmove (fdst, (char *) fp->fddi_dhost, 6); ++      memmove (fsrc, (char *) fp->fddi_shost, 6); +    } + } +  +@@ -994,7 +994,7 @@ ArgusCreatePktFromFddi(const struct fddi +          ((struct ether_header *) ep)->ether_type = EXTRACT_16BITS(&llc->ethertype[0]); +          ptr = (unsigned char *)(llc + 1); +          length -= (sizeof(struct fddi_header) + sizeof(struct llc)); +-         bcopy ((char *)ptr, (char *)(ep + 1), length); ++         memmove ((char *)(ep + 1), (char *)ptr, length); +          retn = length + sizeof(struct ether_header); +       } +    } +@@ -1099,7 +1099,7 @@ ArgusATMPacket(u_char *user, const struc +    caplen -= ARGUS_ATM_HDR_OFFSET; +    p += ARGUS_ATM_HDR_OFFSET; +     +-   bcopy (p, (char *)(ep + 1), caplen); ++   memmove ((char *)(ep + 1), p, caplen); +  +    length += sizeof(*ep); +    caplen += sizeof(*ep); +@@ -1752,7 +1752,7 @@ ArgusGetInterfaceStatus (struct ArgusSou +    if (strstr(device->name, "dag")) { +       for (i = 0; i < src->ArgusInterfaces; i++) { +          if (src->ArgusInterface[i].ArgusPd && (pcap_fileno(src->ArgusInterface[i].ArgusPd) > 0)) +-            bzero ((char *)&src->ArgusInterface[i].ifr, sizeof(ifr)); ++            memset ((char *)&src->ArgusInterface[i].ifr, 0, sizeof(ifr)); +  +          src->ArgusInterface[i].ifr.ifr_flags |= IFF_UP; +          setArgusInterfaceStatus(src, 1); +diff -rup argus-3.0.0.rc.34.orig/argus/ArgusTcp.c argus-3.0.0.rc.34/argus/ArgusTcp.c +--- argus-3.0.0.rc.34.orig/argus/ArgusTcp.c	2006-10-30 19:07:13.000000000 +0100 ++++ argus-3.0.0.rc.34/argus/ArgusTcp.c	2006-12-20 16:17:49.000000000 +0100 +@@ -89,7 +89,7 @@ ArgusUpdateTCPState (struct ArgusModeler +          net->hdr.argus_dsrvl8.len  = ((sizeof(struct ArgusTCPObject)+3))/4 + 1; +          flowstr->dsrs[ARGUS_NETWORK_INDEX] = (struct ArgusDSRHeader *) net; +          tcpExt                    = &net->net_union.tcp; +-         bzero ((char *)tcpExt, sizeof(*tcpExt)); ++         memset ((char *)tcpExt, 0, sizeof(*tcpExt)); +  +          model->ArgusSnapLength -= tcphlen; +          model->ArgusThisLength  = tcpdatalen; +@@ -287,7 +287,7 @@ ArgusInitializeTCP (struct ArgusModelerS + { +    struct ArgusTCPObject *tcpExt = (struct ArgusTCPObject *)&flow->canon.net.net_union.tcp; +  +-   bzero ((char *)tcpExt, sizeof(*tcpExt)); ++   memset ((char *)tcpExt, 0, sizeof(*tcpExt)); +  +    flow->qhdr.lasttime.tv_sec  = 0; +    flow->qhdr.lasttime.tv_usec = 0; +@@ -684,7 +684,7 @@ ArgusTCPFlowRecord (struct ArgusNetworkS +          tcpExt->dst.ackbytes++; +  +       if (tcp && ((length = argus->hdr.len) > 0)) { +-         bcopy ((char *)tcp, &((char *)argus)[length], sizeof(*tcp)); ++         memmove (&((char *)argus)[length], (char *)tcp, sizeof(*tcp)); +          argus->hdr.len += sizeof(*tcp); +       } +  +diff -rup argus-3.0.0.rc.34.orig/argus/ArgusUtil.c argus-3.0.0.rc.34/argus/ArgusUtil.c +--- argus-3.0.0.rc.34.orig/argus/ArgusUtil.c	2006-11-03 18:44:23.000000000 +0100 ++++ argus-3.0.0.rc.34/argus/ArgusUtil.c	2006-12-20 16:19:14.000000000 +0100 +@@ -854,8 +854,8 @@ ArgusZeroRecord (struct ArgusFlowStruct  +  +             case ARGUS_JITTER_INDEX: { +                struct ArgusJitterStruct *jit = (void *)flow->dsrs[i]; +-               bzero ((char *)&jit->act, sizeof(struct ArgusJitterObject)); +-               bzero ((char *)&jit->idle, sizeof(struct ArgusJitterObject)); ++               memset ((char *)&jit->act, 0, sizeof(struct ArgusJitterObject)); ++               memset ((char *)&jit->idle, 0, sizeof(struct ArgusJitterObject)); +                jit->act.src.minval  = 0xffffffff; +                jit->idle.src.minval = 0xffffffff; +                jit->act.dst.minval  = 0xffffffff; +@@ -1105,7 +1105,7 @@ ArgusWriteSocket (struct ArgusOutputStru +                   ArgusDebug (3, "ArgusHandleClientData: sasl_encode returned %d bytes\n", outputlen); + #endif +                   if (outputlen < ARGUS_MAXRECORD) { +-                     bcopy(output, asock->buf, outputlen); ++                     memmove(asock->buf, output, outputlen); +                      cnt = outputlen; +                   } else +                      ArgusLog (LOG_ERR, "sasl_encode: returned too many bytes %d\n", outputlen); +@@ -1282,7 +1282,7 @@ ArgusWriteOutSocket (struct ArgusOutputS +                         ArgusDebug (3, "ArgusHandleClientData: sasl_encode returned %d bytes\n", outputlen); + #endif +                         if (outputlen < ARGUS_MAXRECORD) { +-                           bcopy(output, asock->buf, outputlen); ++                           memmove(asock->buf, output, outputlen); +                            cnt = outputlen; +  +                         } else +diff -rup argus-3.0.0.rc.34.orig/argus/argus.c argus-3.0.0.rc.34/argus/argus.c +--- argus-3.0.0.rc.34.orig/argus/argus.c	2006-11-03 19:54:13.000000000 +0100 ++++ argus-3.0.0.rc.34/argus/argus.c	2006-12-20 16:12:47.000000000 +0100 +@@ -303,7 +303,7 @@ main (int argc, char *argv[]) +               if ((host = gethostbyname(optarg)) != NULL) { +                  if ((host->h_addrtype == 2) && (host->h_length == 4)) { +                     unsigned int addr; +-                    bcopy ((char *) *host->h_addr_list, (char *)&addr, host->h_length); ++                    memmove ((char *)&addr, (char *) *host->h_addr_list, host->h_length); + #if defined(_LITTLE_ENDIAN) +                     setArgusID (ArgusModel, ntohl(addr)); + #else +@@ -499,7 +499,7 @@ ArgusComplete () +    if (ArgusSourceTask->ArgusStartTime.tv_sec == 0) +       ArgusSourceTask->ArgusStartTime = ArgusSourceTask->ArgusEndTime; +  +-   bzero(buf, sizeof(buf)); ++   memset(buf, 0, sizeof(buf)); +  +    timediff.tv_sec  = ArgusSourceTask->ArgusEndTime.tv_sec  - ArgusSourceTask->ArgusStartTime.tv_sec; +    timediff.tv_usec = ArgusSourceTask->ArgusEndTime.tv_usec - ArgusSourceTask->ArgusStartTime.tv_usec; +@@ -784,7 +784,7 @@ ArgusParseResourceFile (struct ArgusMode +                               if ((host = gethostbyname(optarg)) != NULL) { +                                  if ((host->h_addrtype == 2) && (host->h_length == 4)) { +                                     unsigned int addr; +-                                    bcopy ((char *) *host->h_addr_list, (char *)&addr, host->h_length); ++                                    memmove ((char *)&addr, (char *) *host->h_addr_list, host->h_length); + #if defined(_LITTLE_ENDIAN) +                                     setArgusID (model, ntohl(addr)); + #else +diff -rup argus-3.0.0.rc.34.orig/common/argus_auth.c argus-3.0.0.rc.34/common/argus_auth.c +--- argus-3.0.0.rc.34.orig/common/argus_auth.c	2006-08-18 19:15:14.000000000 +0200 ++++ argus-3.0.0.rc.34/common/argus_auth.c	2006-12-20 16:56:47.000000000 +0100 +@@ -473,12 +473,12 @@ RaSendSaslString (FILE *f, const char *s +    char saslbuf[MAXSTRLEN]; +    int len, al = 0; +  +-   bzero (saslbuf, MAXSTRLEN); ++   memset (saslbuf, 0, MAXSTRLEN); +     +    snprintf(saslbuf, MAXSTRLEN, "{%d}\r\n", l); +    len = strlen(saslbuf); +  +-   bcopy (s, &saslbuf[len], l); ++   memmove (&saslbuf[len], s, l); +    len += l; +  +    al = fwrite(saslbuf, 1, len, f); +diff -rup argus-3.0.0.rc.34.orig/common/argus_parse.c argus-3.0.0.rc.34/common/argus_parse.c +--- argus-3.0.0.rc.34.orig/common/argus_parse.c	2006-08-18 19:15:14.000000000 +0200 ++++ argus-3.0.0.rc.34/common/argus_parse.c	2006-12-20 16:56:34.000000000 +0100 +@@ -80,7 +80,7 @@ argus_parse_init (struct ARGUS_INPUT *in +    if (input != NULL) +       fd = input->fd; +  +-   bzero((char *)&ArgusOutputFile, sizeof(ArgusOutputFile)); ++   memset((char *)&ArgusOutputFile, 0, sizeof(ArgusOutputFile)); +  +    if (initCon) { +       if (initCon->ahdr.status & ARGUS_DETAIL) detail++; +@@ -496,8 +496,8 @@ main (int argc, char **argv) +       *RaInputFilter = cmdbuf; +    } +  +-   bzero ((char *) &ArgusFilterCode, sizeof (ArgusFilterCode)); +-   bzero ((char *) &pbuf, sizeof (pbuf)); ++   memset ((char *) &ArgusFilterCode, 0, sizeof (ArgusFilterCode)); ++   memset ((char *) &pbuf, 0, sizeof (pbuf)); +  +    if (ArgusFilterCompile (&pbuf, &ArgusFilterCode, *RaInputFilter, 1, ArgusNetMask) < 0) { +       if (pbuf.errbuf[0] != '\0') { +@@ -574,7 +574,7 @@ main (int argc, char **argv) +       } else { +          struct ARGUS_INPUT addrbuf, *addr = &addrbuf; +  +-         bzero ((char *) addr, sizeof (*addr)); ++         memset ((char *) addr, 0, sizeof (*addr)); +          addr->fd = 0; +  +          if (((ArgusReadConnection (addr, NULL)) >= 0)) { +@@ -628,8 +628,8 @@ ArgusHandleDatum (struct ArgusRecord *pt +       u_char buf[MAXSTRLEN]; +  +       totalrecords++; +-      bcopy ((char *)ptr, (char *)ArgusOriginal, len); +-      bcopy ((char *)ptr, (char *)&buf, len); ++      memmove ((char *)ArgusOriginal, (char *)ptr, len); ++      memmove ((char *)&buf, (char *)ptr, len); +     +       switch (ptr->ahdr.type) { +          case ARGUS_MAR: +@@ -736,68 +736,68 @@ ArgusGenerateCanonicalRecord (struct Arg +  +    hdrs = ArgusThisFarHdrs; +  +-   bzero ((char *)canon, sizeof(*canon)); ++   memset ((char *)canon, 0, sizeof(*canon)); +  +    if (ptr->ahdr.type & ARGUS_MAR) { +-      bcopy ((char *)ptr, (char *)canon, sizeof(*ptr)); ++      memmove ((char *)canon, (char *)ptr, sizeof(*ptr)); +  +    } else { +-      bcopy ((char *)&ptr->ahdr, (char *)&canon->ahdr, sizeof(canon->ahdr)); ++      memmove ((char *)&canon->ahdr, (char *)&ptr->ahdr, sizeof(canon->ahdr)); +     +       for (i = 1; i < 33; i++) { +          index = 1 << (i - 1); +          switch (index) { +             case ARGUS_FAR_DSR_STATUS: +                if (ArgusThisFarStatus & ARGUS_FAR_DSR_STATUS) +-                  bcopy((char *) hdrs[ARGUS_FAR_DSR_INDEX], (char *)&ar->argus_far, sizeof (ar->argus_far)); ++                  memmove((char *)&ar->argus_far, (char *) hdrs[ARGUS_FAR_DSR_INDEX], sizeof (ar->argus_far)); +                break; +             case ARGUS_MAC_DSR_STATUS: +                if (ArgusThisFarStatus & ARGUS_MAC_DSR_STATUS) +-                  bcopy((char *) hdrs[ARGUS_MAC_DSR_INDEX], (char *)&canon->mac, sizeof(canon->mac)); ++                  memmove((char *)&canon->mac, (char *) hdrs[ARGUS_MAC_DSR_INDEX], sizeof(canon->mac)); +                break; +             case ARGUS_VLAN_DSR_STATUS: +                if (ArgusThisFarStatus & ARGUS_VLAN_DSR_STATUS) +-                  bcopy((char *) hdrs[ARGUS_VLAN_DSR_INDEX], (char *)&canon->vlan, sizeof(canon->vlan)); ++                  memmove((char *)&canon->vlan, (char *) hdrs[ARGUS_VLAN_DSR_INDEX], sizeof(canon->vlan)); +                break; +             case ARGUS_MPLS_DSR_STATUS: +                if (ArgusThisFarStatus & ARGUS_MPLS_DSR_STATUS) +-                  bcopy((char *) hdrs[ARGUS_MPLS_DSR_INDEX], (char *)&canon->mpls, sizeof(canon->mpls)); ++                  memmove((char *)&canon->mpls, (char *) hdrs[ARGUS_MPLS_DSR_INDEX], sizeof(canon->mpls)); +                break; +             case ARGUS_AGR_DSR_STATUS: +                if (ArgusThisFarStatus & ARGUS_AGR_DSR_STATUS) +-                  bcopy((char *) hdrs[ARGUS_AGR_DSR_INDEX], (char *)&canon->agr, sizeof(canon->agr)); ++                  memmove((char *)&canon->agr, (char *) hdrs[ARGUS_AGR_DSR_INDEX], sizeof(canon->agr)); +                break; +             case ARGUS_TIME_DSR_STATUS: +                if (ArgusThisFarStatus & ARGUS_TIME_DSR_STATUS) +-                  bcopy((char *) hdrs[ARGUS_TIME_DSR_INDEX], (char *)&canon->time, sizeof(canon->time)); ++                  memmove((char *)&canon->time, (char *) hdrs[ARGUS_TIME_DSR_INDEX], sizeof(canon->time)); +                break; +             case ARGUS_TCP_DSR_STATUS:    +                if (ArgusThisFarStatus & ARGUS_TCP_DSR_STATUS) +-                  bcopy((char *) hdrs[ARGUS_TCP_DSR_INDEX], (char *)&canon->acr_tcp, sizeof(canon->acr_tcp)); ++                  memmove((char *)&canon->acr_tcp, (char *) hdrs[ARGUS_TCP_DSR_INDEX], sizeof(canon->acr_tcp)); +                break; +             case ARGUS_ICMP_DSR_STATUS:   +                if (ArgusThisFarStatus & ARGUS_ICMP_DSR_STATUS) +-                  bcopy((char *) hdrs[ARGUS_ICMP_DSR_INDEX], (char *)&canon->acr_icmp, sizeof(canon->acr_icmp)); ++                  memmove((char *)&canon->acr_icmp, (char *) hdrs[ARGUS_ICMP_DSR_INDEX], sizeof(canon->acr_icmp)); +                break; +             case ARGUS_RTP_DSR_STATUS:    +                if (ArgusThisFarStatus & ARGUS_RTP_DSR_STATUS) +-                  bcopy((char *) hdrs[ARGUS_RTP_DSR_INDEX], (char *)&canon->acr_rtp, sizeof(canon->acr_rtp)); ++                  memmove((char *)&canon->acr_rtp, (char *) hdrs[ARGUS_RTP_DSR_INDEX], sizeof(canon->acr_rtp)); +                break; +             case ARGUS_IGMP_DSR_STATUS:   +                if (ArgusThisFarStatus & ARGUS_IGMP_DSR_STATUS) +-                  bcopy((char *) hdrs[ARGUS_IGMP_DSR_INDEX], (char *)&canon->acr_igmp, sizeof(canon->acr_igmp)); ++                  memmove((char *)&canon->acr_igmp, (char *) hdrs[ARGUS_IGMP_DSR_INDEX], sizeof(canon->acr_igmp)); +                break; +             case ARGUS_ARP_DSR_STATUS:    +                if (ArgusThisFarStatus & ARGUS_ARP_DSR_STATUS) +-                  bcopy((char *) hdrs[ARGUS_ARP_DSR_INDEX], (char *)&canon->acr_arp, sizeof(canon->acr_arp)); ++                  memmove((char *)&canon->acr_arp, (char *) hdrs[ARGUS_ARP_DSR_INDEX], sizeof(canon->acr_arp)); +                break; +             case ARGUS_FRG_DSR_STATUS:    +                if (ArgusThisFarStatus & ARGUS_FRG_DSR_STATUS) +-                  bcopy((char *) hdrs[ARGUS_FRG_DSR_INDEX], (char *)&canon->acr_frag, sizeof(canon->acr_frag)); ++                  memmove((char *)&canon->acr_frag, (char *) hdrs[ARGUS_FRG_DSR_INDEX], sizeof(canon->acr_frag)); +                break; +             case ARGUS_ESP_DSR_STATUS:    +                if (ArgusThisFarStatus & ARGUS_ESP_DSR_STATUS) +-                  bcopy((char *) hdrs[ARGUS_ESP_DSR_INDEX], (char *)&canon->acr_esp, sizeof(canon->acr_esp)); ++                  memmove((char *)&canon->acr_esp, (char *) hdrs[ARGUS_ESP_DSR_INDEX], sizeof(canon->acr_esp)); +                break; +          } +       } +@@ -829,7 +829,7 @@ ArgusParseCiscoRecordV1 (u_char **ptr) +    struct ArgusRecord *argus = ArgusNetFlowArgusRecord; +    struct ArgusMacStruct mac; +  +-   bzero ((char *) argus, sizeof (*argus)); ++   memset ((char *) argus, 0, sizeof (*argus)); +    argus->ahdr.type    = ARGUS_FAR | ARGUS_CISCO_NETFLOW; +    argus->ahdr.cause   = ARGUS_STATUS; +    argus->ahdr.length  = sizeof(argus->ahdr) + sizeof(argus->argus_far); +@@ -868,7 +868,7 @@ ArgusParseCiscoRecordV1 (u_char **ptr) +       case IPPROTO_TCP: {  +          struct ArgusTCPObject tcpbuf, *tcp = &tcpbuf; +  +-         bzero ((char *) tcp, sizeof(*tcp)); ++         memset ((char *) tcp, 0, sizeof(*tcp)); +          tcp->type = ARGUS_TCP_DSR; +          tcp->length = sizeof(struct ArgusTCPObject); +          tcp->src.flags    = entryPtrV1->flags; +@@ -888,7 +888,7 @@ ArgusParseCiscoRecordV1 (u_char **ptr) +                break; +          } +  +-         bcopy ((char *)tcp, &((char *)argus)[argus->ahdr.length], sizeof(*tcp)); ++         memmove (&((char *)argus)[argus->ahdr.length], (char *)tcp, sizeof(*tcp)); +          argus->ahdr.length += sizeof(*tcp); +       } +  +@@ -906,17 +906,17 @@ ArgusParseCiscoRecordV1 (u_char **ptr) +       break; +    } +  +-   bzero ((char *)&mac, sizeof (mac)); ++   memset ((char *)&mac, 0, sizeof (mac)); +    mac.type   = ARGUS_MAC_DSR; +    mac.length = sizeof(mac); +    mac.status = 0; +    entryPtrV1->input = ntohs(entryPtrV1->input); +    entryPtrV1->output = ntohs(entryPtrV1->output); +     +-   bcopy((char *)&entryPtrV1->input, (char *)&mac.phys_union.ether.ethersrc[4], 2); +-   bcopy((char *)&entryPtrV1->output,(char *)&mac.phys_union.ether.etherdst[4], 2); ++   memmove((char *)&mac.phys_union.ether.ethersrc[4], (char *)&entryPtrV1->input, 2); ++   memmove((char *)&mac.phys_union.ether.etherdst[4], (char *)&entryPtrV1->output, 2); +  +-   bcopy ((char *)&mac, &((char *)argus)[argus->ahdr.length], sizeof(mac)); ++   memmove (&((char *)argus)[argus->ahdr.length], (char *)&mac, sizeof(mac)); +    argus->ahdr.length += sizeof(mac); +  + #ifdef _LITTLE_ENDIAN +@@ -939,7 +939,7 @@ ArgusParseCiscoRecordV5 (u_char **ptr) +    struct ArgusRecord *argus = ArgusNetFlowArgusRecord; +    struct ArgusMacStruct mac; +  +-   bzero ((char *) argus, sizeof (*argus)); ++   memset ((char *) argus, 0, sizeof (*argus)); +    argus->ahdr.type    = ARGUS_FAR | ARGUS_CISCO_NETFLOW; +    argus->ahdr.cause   = ARGUS_STATUS; +    argus->ahdr.length  = sizeof(argus->ahdr) + sizeof(argus->argus_far); +@@ -980,7 +980,7 @@ ArgusParseCiscoRecordV5 (u_char **ptr) +       case IPPROTO_TCP: { +          struct ArgusTCPObject tcpbuf, *tcp = &tcpbuf; +  +-         bzero ((char *) tcp, sizeof(*tcp)); ++         memset ((char *) tcp, 0, sizeof(*tcp)); +          tcp->type = ARGUS_TCP_DSR; +          tcp->length = sizeof(struct ArgusTCPObject); +          tcp->src.flags    = entryPtrV5->tcp_flags; +@@ -1000,23 +1000,23 @@ ArgusParseCiscoRecordV5 (u_char **ptr) +                break; +          } +  +-         bcopy ((char *)tcp, &((char *)argus)[argus->ahdr.length], sizeof(*tcp)); ++         memmove (&((char *)argus)[argus->ahdr.length], (char *)tcp, sizeof(*tcp)); +          argus->ahdr.length += sizeof(*tcp); +       } +       break; +    } +  +-   bzero ((char *)&mac, sizeof (mac)); ++   memset ((char *)&mac, 0, sizeof (mac)); +    mac.type   = ARGUS_MAC_DSR; +    mac.length = sizeof(mac); +    mac.status = 0; +    entryPtrV5->input = ntohs(entryPtrV5->input); +    entryPtrV5->output = ntohs(entryPtrV5->output); +  +-   bcopy((char *)&entryPtrV5->input, (char *)&mac.phys_union.ether.ethersrc[4], 2); +-   bcopy((char *)&entryPtrV5->output,(char *)&mac.phys_union.ether.etherdst[4], 2); ++   memmve((char *)&mac.phys_union.ether.ethersrc[4], (char *)&entryPtrV5->input, 2); ++   memmove((char *)&mac.phys_union.ether.etherdst[4], (char *)&entryPtrV5->output, 2); +  +-   bcopy ((char *)&mac, &((char *)argus)[argus->ahdr.length], sizeof(mac)); ++   memmove (&((char *)argus)[argus->ahdr.length], (char *)&mac, sizeof(mac)); +    argus->ahdr.length += sizeof(mac); +  + #ifdef _LITTLE_ENDIAN +@@ -1039,7 +1039,7 @@ ArgusParseCiscoRecordV6 (u_char **ptr) +    struct ArgusRecord *argus = ArgusNetFlowArgusRecord; +    struct ArgusMacStruct mac; +  +-   bzero ((char *) argus, sizeof (*argus)); ++   memset ((char *) argus, 0, sizeof (*argus)); +    argus->ahdr.type    = ARGUS_FAR | ARGUS_CISCO_NETFLOW; +    argus->ahdr.cause   = ARGUS_STATUS; +    argus->ahdr.length  = sizeof(argus->ahdr) + sizeof(argus->argus_far); +@@ -1080,7 +1080,7 @@ ArgusParseCiscoRecordV6 (u_char **ptr) +       case IPPROTO_TCP: { +          struct ArgusTCPObject tcpbuf, *tcp = &tcpbuf; +  +-         bzero ((char *) tcp, sizeof(*tcp)); ++         memset ((char *) tcp, 0, sizeof(*tcp)); +          tcp->type = ARGUS_TCP_DSR; +          tcp->length = sizeof(struct ArgusTCPObject); +          tcp->src.flags    = entryPtrV6->tcp_flags; +@@ -1100,23 +1100,23 @@ ArgusParseCiscoRecordV6 (u_char **ptr) +                break; +          } +  +-         bcopy ((char *)tcp, &((char *)argus)[argus->ahdr.length], sizeof(*tcp)); ++         memmve (&((char *)argus)[argus->ahdr.length], (char *)tcp, sizeof(*tcp)); +          argus->ahdr.length += sizeof(*tcp); +       } +       break; +    } +  +-   bzero ((char *)&mac, sizeof (mac)); ++   memset ((char *)&mac, 0, sizeof (mac)); +    mac.type   = ARGUS_MAC_DSR; +    mac.length = sizeof(mac); +    mac.status = 0; +    entryPtrV6->input = ntohs(entryPtrV6->input); +    entryPtrV6->output = ntohs(entryPtrV6->output); +  +-   bcopy((char *)&entryPtrV6->input, (char *)&mac.phys_union.ether.ethersrc[4], 2); +-   bcopy((char *)&entryPtrV6->output,(char *)&mac.phys_union.ether.etherdst[4], 2); ++   memmove((char *)&mac.phys_union.ether.ethersrc[4], (char *)&entryPtrV6->input, 2); ++   memmove((char *)&mac.phys_union.ether.etherdst[4], (char *)&entryPtrV6->output, 2); +  +-   bcopy ((char *)&mac, &((char *)argus)[argus->ahdr.length], sizeof(mac)); ++   memmove (&((char *)argus)[argus->ahdr.length], (char *)&mac, sizeof(mac)); +    argus->ahdr.length += sizeof(mac); +  + #ifdef _LITTLE_ENDIAN +@@ -1145,7 +1145,7 @@ ArgusParseCiscoRecord (u_char **ptr) +          CiscoFlowHeaderV1_t *hdrPtrV1   = (CiscoFlowHeaderV1_t *) *ptr; +          CiscoFlowEntryV1_t  *entryPtrV1 = (CiscoFlowEntryV1_t *) (hdrPtrV1 + 1); +  +-         bzero ((char *) argus, sizeof (*argus)); ++         memset ((char *) argus, 0, sizeof (*argus)); +          argus->ahdr.type    = ARGUS_FAR | ARGUS_CISCO_NETFLOW; +          argus->ahdr.cause   = ARGUS_STATUS; +          argus->ahdr.length  = sizeof(argus->ahdr) + sizeof(argus->argus_far); +@@ -1191,7 +1191,7 @@ ArgusParseCiscoRecord (u_char **ptr) +          CiscoFlowHeaderV5_t *hdrPtrV5   = (CiscoFlowHeaderV5_t *) ptr; +          CiscoFlowEntryV5_t  *entryPtrV5 = (CiscoFlowEntryV5_t *) (hdrPtrV5 + 1); +  +-         bzero ((char *) argus, sizeof (*argus)); ++         memset ((char *) argus, 0, sizeof (*argus)); +          argus->ahdr.type    = ARGUS_FAR | ARGUS_CISCO_NETFLOW; +          argus->ahdr.cause   = ARGUS_STATUS; +          argus->ahdr.length  = sizeof(argus->ahdr) + sizeof(argus->argus_far); +@@ -1238,7 +1238,7 @@ ArgusParseCiscoRecord (u_char **ptr) +          CiscoFlowHeaderV6_t *hdrPtrV6   = (CiscoFlowHeaderV6_t *) ptr; +          CiscoFlowEntryV6_t  *entryPtrV6 = (CiscoFlowEntryV6_t *) (hdrPtrV6 + 1); +  +-         bzero ((char *) argus, sizeof (*argus)); ++         memset ((char *) argus, 0, sizeof (*argus)); +          argus->ahdr.type    = ARGUS_FAR | ARGUS_CISCO_NETFLOW; +          argus->ahdr.cause   = ARGUS_STATUS; +          argus->ahdr.length  = sizeof(argus->ahdr) + sizeof(argus->argus_far); +@@ -1301,7 +1301,7 @@ ArgusNetFlowCallRecord (u_char **ptr) +    BinaryRecord_CallRecord_V1 *call = (BinaryRecord_CallRecord_V1 *) *ptr; +  +    if (*ptr) { +-      bzero ((char *) argus, sizeof (*argus)); ++      memset ((char *) argus, 0, sizeof (*argus)); +       argus->ahdr.type    = ARGUS_FAR | ARGUS_CISCO_NETFLOW; +       argus->ahdr.cause   = ARGUS_STATUS; +       argus->ahdr.length  = sizeof(argus->ahdr) + sizeof(argus->argus_far); +@@ -1348,7 +1348,7 @@ ArgusNetFlowDetailInt (u_char **ptr) +  +    if (*ptr) { +       dint = NULL; +-      bzero ((char *) argus, sizeof (*argus)); ++      memset ((char *) argus, 0, sizeof (*argus)); +    } +  +  +@@ -1438,7 +1438,7 @@ ArgusReadConnection (struct ARGUS_INPUT  +  +    if (fd >= 0) { +       if (!(Cflag)) { +-         bzero ((char *) &argus, sizeof(argus)); ++         memset ((char *) &argus, 0, sizeof(argus)); +          if ((cnt = read (fd, &argus, sizeof(argus.ahdr))) == sizeof(argus.ahdr)) { + #ifdef ARGUSDEBUG +             ArgusDebug (5, "ArgusReadConnection() read %d bytes\n", cnt); +@@ -1447,7 +1447,7 @@ ArgusReadConnection (struct ARGUS_INPUT  +                if (((ptr[0] == 0x1F) && ((ptr[1] == 0x8B) || (ptr[1] == 0x9D))) || +                    ((ptr[0] == 'B') && (ptr[1] == 'Z') && (ptr[2] == 'h'))) { +                   char cmd[256]; +-                  bzero(cmd, 256); ++                  memset(cmd, 0, 256); +                   close(fd); +                   if (ptr[0] == 'B') +                      strcpy(cmd, "bzip2 -dc "); +@@ -1514,8 +1514,8 @@ ArgusReadConnection (struct ARGUS_INPUT  +                         return (-1); +                      } +        +-                     bcopy ((char *) &argus, (char *)&input->ArgusInitCon, sizeof (argus)); +-                     bcopy ((char *) &argus, (char *) ArgusOriginal, length); ++                     memmove ((char *)&input->ArgusInitCon, (char *) &argus, sizeof (argus)); ++                     memmove ((char *) ArgusOriginal, (char *) &argus, length); +                      ArgusInput = input; +        +                      ArgusHandleDatum ((struct ArgusRecord *)&argus, &ArgusFilterCode); +@@ -1524,7 +1524,7 @@ ArgusReadConnection (struct ARGUS_INPUT  +                      ArgusNtoH(&argus); + #endif +        +-                     bcopy ((char *) &argus, (char *)&input->ArgusManStart, sizeof (argus)); ++                     memmove ((char *)&input->ArgusManStart, (char *) &argus, sizeof (argus)); +                      input->major_version = MAJOR_VERSION_2; +                      input->minor_version = MINOR_VERSION_0; +                      input->ArgusReadSize = argus.argus_mar.record_len; +@@ -1543,7 +1543,7 @@ ArgusReadConnection (struct ARGUS_INPUT  +                         if ((ArgusRemoteFilter != NULL) && (filename == NULL) && (fd != 0)) { +                            int len; +  +-                           bzero(buf, MAXSTRLEN); ++                           memset(buf, 0, MAXSTRLEN); +                            snprintf ((char *) buf, MAXSTRLEN-1, "FILTER: man or %s", (char *) ArgusRemoteFilter); +                            len = strlen((char *) buf); +                            if (ArgusWriteConnection (input, buf, len) < 0) { +@@ -1564,7 +1564,7 @@ ArgusReadConnection (struct ARGUS_INPUT  +                   char *ptr; +                   int size; +     +-                  bcopy ((char *)&argus, buf, sizeof(argus.ahdr)); ++                  memmove (buf, (char *)&argus, sizeof(argus.ahdr)); +  +                   size = sizeof(*ws) - sizeof(argus.ahdr); +     +@@ -1584,11 +1584,11 @@ ArgusReadConnection (struct ARGUS_INPUT  +  +                      if (initCon == NULL) { +                         if ((initCon = (struct ArgusRecord *) calloc (1, sizeof (argus))) != NULL) +-                           bcopy ((char *) &argus, (char *) initCon, sizeof (argus)); ++                           memmove ((char *) initCon, (char *) &argus, sizeof (argus)); +                      } +  +-                     bcopy ((char *) &argus, (char *)&input->ArgusInitCon, sizeof (argus)); +-                     bcopy ((char *)&argus, (char *) ArgusOriginal, sizeof(argus)); ++                     memmove ((char *)&input->ArgusInitCon, (char *) &argus, sizeof (argus)); ++                     memmove ((char *) ArgusOriginal, (char *)&argus, sizeof(argus)); +  +                      ArgusInput = input; +  +@@ -1617,7 +1617,7 @@ ArgusReadConnection (struct ARGUS_INPUT  +                   BinaryHeaderF2 *ArgusNetFlow = (BinaryHeaderF2 *) buf; +                   int size; +     +-                  bcopy ((char *)&argus, buf, sizeof(argus.ahdr)); ++                  memmove (buf, (char *)&argus, sizeof(argus.ahdr)); +                   size = sizeof(*ArgusNetFlow) - sizeof(argus.ahdr); +     +                   if ((cnt = read (fd, &buf[sizeof(argus.ahdr)], size)) != size) { +@@ -1633,7 +1633,7 @@ ArgusReadConnection (struct ARGUS_INPUT  +                      ArgusNetFlow->missed    = ntohl(ArgusNetFlow->missed); +                      ArgusNetFlow->records   = ntohl(ArgusNetFlow->records); + #endif +-                     bzero ((char *)&argus, sizeof(argus)); ++                     memset ((char *)&argus, 0, sizeof(argus)); +     +                      argus.ahdr.type                 = ARGUS_MAR | ARGUS_CISCO_NETFLOW; +                      argus.ahdr.length               = sizeof (argus); +@@ -1657,11 +1657,11 @@ ArgusReadConnection (struct ARGUS_INPUT  + #endif +                         if (initCon == NULL) { +                            if ((initCon = (struct ArgusRecord *) calloc (1, sizeof (argus))) != NULL) +-                              bcopy ((char *) &argus, (char *) initCon, sizeof (argus)); ++                              memmove ((char *) initCon, (char *) &argus, sizeof (argus)); +                         } +  +-                        bcopy ((char *) &argus, (char *)&input->ArgusInitCon, sizeof (argus)); +-                        bcopy ((char *) &argus, (char *) ArgusOriginal, sizeof(argus)); ++                        memmove ((char *)&input->ArgusInitCon, (char *) &argus, sizeof (argus)); ++                        memmove ((char *) ArgusOriginal, (char *) &argus, sizeof(argus)); +                         ArgusInput = input; +  +                         ArgusGenerateCanonicalRecord (&argus, canon); +@@ -1702,7 +1702,7 @@ ArgusReadConnection (struct ARGUS_INPUT  + #ifdef ARGUSDEBUG +             ArgusDebug (2, "ArgusReadConnection(0x%x) reading from Cisco Router.\n", input); + #endif +-            bzero ((char *)&argus, sizeof(argus)); ++            memset ((char *)&argus, 0, sizeof(argus)); +             argus_parse_init (input); +          } +       } +@@ -1902,7 +1902,7 @@ ArgusReadSaslStreamSocket (struct ARGUS_ +  +                while ((char *)argus < end) { +                   input->ArgusReadSocketCnt = ntohs(argus->ahdr.length); +-                  bcopy (argus, input->ArgusReadBuffer, input->ArgusReadSocketCnt); ++                  memmove (input->ArgusReadBuffer, argus, input->ArgusReadSocketCnt); +  +                   if (ArgusHandleDatum (argus, &ArgusFilterCode) == 1) { +                      if (!input->filename) +@@ -1970,7 +1970,7 @@ ArgusReadStreamSocket (struct ARGUS_INPU +          if (input->ArgusReadSocketState == ARGUS_READINGHDR) { +             input->ArgusReadSocketState = ARGUS_READINGBLOCK; +              +-            bcopy ((char *) &((struct ArgusRecordHeader *)input->ArgusReadPtr)->length, (char *) &length, sizeof(length)); ++            memmove ((char *) &length, (char *) &((struct ArgusRecordHeader *)input->ArgusReadPtr)->length, sizeof(length)); +             input->ArgusReadSocketSize = ntohs(length) - sizeof(struct ArgusRecordHeader); +             if ((input->ArgusReadSocketSize > 0) && (input->ArgusReadSocketSize < MAXSTRLEN)) { +                input->ArgusReadPtr = &input->ArgusReadBuffer[input->ArgusReadSocketCnt]; +@@ -1986,7 +1986,7 @@ ArgusReadStreamSocket (struct ARGUS_INPU +             if (input->major_version < 2) { +                ArgusConvertWriteStruct ((struct WriteStruct *)input->ArgusReadBuffer, +                                         (struct ArgusRecord *)input->ArgusConvBuffer); +-               bcopy ((char *) input->ArgusConvBuffer, input->ArgusReadBuffer, MAXSTRLEN); ++               memmove (input->ArgusReadBuffer, (char *) input->ArgusConvBuffer, MAXSTRLEN); +             } +  +             if (ArgusHandleDatum ((struct ArgusRecord *)input->ArgusReadBuffer, &ArgusFilterCode) == 1) { +@@ -2002,7 +2002,7 @@ ArgusReadStreamSocket (struct ARGUS_INPU +             } +  +             input->ArgusReadPtr = input->ArgusReadBuffer; +-            bzero (input->ArgusReadBuffer, MAXSTRLEN); ++            memset (input->ArgusReadBuffer, 0, MAXSTRLEN); +             input->ArgusReadSocketCnt = 0; +          } +       } +@@ -2105,7 +2105,7 @@ ArgusReadCiscoStreamSocket (struct ARGUS +  +                if (!(input->ArgusReadSocketNum--)) { +                   input->ArgusReadPtr = input->ArgusReadBuffer; +-                  bzero (input->ArgusReadBuffer, MAXSTRLEN); ++                  memset (input->ArgusReadBuffer, 0, MAXSTRLEN); +  +                } else { +                   input->ArgusReadPtr = input->ArgusReadBlockPtr; +@@ -2279,7 +2279,7 @@ ArgusReadStream () +       return; +    } +  +-   bzero ((char *)&timeoutValue, sizeof(timeoutValue)); ++   memset ((char *)&timeoutValue, 0, sizeof(timeoutValue)); +  +    if (gettimeofday (&now, NULL) == 0) { +       ArgusAdjustGlobalTime(&ArgusGlobalTime, &ArgusNowTime); +@@ -2535,7 +2535,7 @@ ArgusGetServerSocket (struct ARGUS_INPUT +          } else +             portnum = htons(input->portnum); +  +-         bzero ((char *)&argus, sizeof(argus)); ++         memset ((char *)&argus, 0, sizeof(argus)); +          argus.ahdr.type                 = ARGUS_MAR | ARGUS_CISCO_NETFLOW; +          argus.ahdr.length               = sizeof (argus); +          argus.ahdr.cause                = ARGUS_START; +@@ -2549,15 +2549,15 @@ ArgusGetServerSocket (struct ARGUS_INPUT +          input->major_version = argus.argus_mar.major_version; +          input->minor_version = argus.argus_mar.minor_version; +  +-         bcopy ((char *) &argus, (char *)&input->ArgusInitCon, sizeof (argus)); +-         bcopy ((char *) &argus, (char *) ArgusOriginal, sizeof(argus)); ++         memmove ((char *)&input->ArgusInitCon, (char *) &argus, sizeof (argus)); ++         memmove ((char *) ArgusOriginal, (char *) &argus, sizeof(argus)); +          ArgusInput = input; +  +       } else +          ArgusLog (LOG_ERR, "ArgusGetServerSocket(0x%x) unknown type\n", input); +    } +  +-   bzero ((char *) &server, sizeof (server)); ++   memset ((char *) &server, 0, sizeof (server)); +  +    if ((s = socket (AF_INET, type, 0)) >= 0) { +       if (type == SOCK_DGRAM) { +@@ -2582,7 +2582,7 @@ ArgusGetServerSocket (struct ARGUS_INPUT +  +          if ((hp = gethostbyaddr ((char *)&input->addr, sizeof (input->addr), AF_INET)) != NULL) { +             input->hostname = strdup(hp->h_name); +-            bcopy ((char *) hp->h_addr, (char *)&server.sin_addr, hp->h_length); ++            memmove ((char *)&server.sin_addr, (char *) hp->h_addr, hp->h_length); +             server.sin_family = hp->h_addrtype; +             server.sin_port = portnum; + #ifdef ARGUSDEBUG +@@ -2889,7 +2889,7 @@ check_time (struct ArgusRecord *ptr) +       if (!explicit_date) { +          tm = localtime_r((time_t *)&start->tv_sec, &tmbuf); +          if (tm->tm_yday != starTimeFilter.tm_yday) { +-            bcopy ((char *) tm, (char *) &tmbuf, sizeof (struct tm)); ++            memmove ((char *) &tmbuf, (char *) tm, sizeof (struct tm)); +             if (check_time_format (&tmbuf, timearg)) +                ArgusLog (LOG_ERR, "time syntax error %s\n", timearg); +          } +@@ -2926,7 +2926,7 @@ parseUserDataArg (char **arg, char *args +    int retn = -1; +    char buf[64], *ptr = buf; +     +-   bzero (buf, 64); ++   memset (buf, 0, 64); +    strcpy (buf, *arg); +    ptr += strlen (buf); +  +@@ -2992,7 +2992,7 @@ parseTimeArg ( char **arg, char *args[], +    int retn = -1; +    char buf[64], *ptr = buf; +  +-   bzero (buf, 64); ++   memset (buf, 0, 64); +    strcpy (buf, *arg); +    ptr += strlen (buf); +    if ((ptr = strchr(*arg, '-')) && (*(ptr + 1) != '\0')) { +@@ -3054,7 +3054,7 @@ check_time_format (struct tm *tm, char * +  +    } else { +       if ((retn = parseTime (&starTimeFilter, tm, buf)) > 0) { +-         bcopy ((char *)&starTimeFilter, (char *)&lastTimeFilter, sizeof(struct tm)); ++         memmove ((char *)&lastTimeFilter, (char *)&starTimeFilter, sizeof(struct tm)); +          switch (retn) { +             case ARGUS_YEAR:  lastTimeFilter.tm_year++; break; +             case ARGUS_MONTH: lastTimeFilter.tm_mon++; break; +@@ -3091,7 +3091,7 @@ parseTime (struct tm *tm, struct tm *ctm +  +    /*[[[yyyy/]mm/]dd].]hh[:mm[:ss]]*/ +  +-   bcopy ((u_char *) ctm, (u_char *) tm, sizeof (struct tm)); ++   memmove ((u_char *) tm, (u_char *) ctm, sizeof (struct tm)); +  +    if ((hptr = strchr (str, '.')) != NULL) { +       *hptr++ = '\0'; +diff -rup argus-3.0.0.rc.34.orig/common/argus_util.c argus-3.0.0.rc.34/common/argus_util.c +--- argus-3.0.0.rc.34.orig/common/argus_util.c	2006-10-02 17:23:44.000000000 +0200 ++++ argus-3.0.0.rc.34/common/argus_util.c	2006-12-20 17:02:40.000000000 +0100 +@@ -540,12 +540,12 @@ ArgusNtoH (struct ArgusRecord *argus) +                   u_int32_t value; +                   stat->n        = ntohl(stat->n); +                   stat->minval   = ntohl(stat->minval); +-                  bcopy((char *)&stat->meanval, (char *)&value, sizeof(value)); ++                  memmove((char *)&value, (char *)&stat->meanval, sizeof(value)); +                   value          = ntohl(value); +-                  bcopy((char *)&value, (char *)&stat->meanval, sizeof(value)); +-                  bcopy((char *)&stat->stdev, (char *)&value, sizeof(value)); ++                  memmove((char *)&stat->meanval, (char *)&value, sizeof(value)); ++                  memmove((char *)&value, (char *)&stat->stdev, sizeof(value)); +                   value          = ntohl(value); +-                  bcopy((char *)&value, (char *)&stat->stdev, sizeof(value)); ++                  memmove((char *)&stat->stdev, (char *)&value, sizeof(value)); +                   stat->maxval   = ntohl(stat->maxval); +  +                   stat++; +@@ -946,12 +946,12 @@ ArgusHtoN (struct ArgusRecord *argus) +                   u_int32_t value; +                   stat->n        = htonl(stat->n); +                   stat->minval   = htonl(stat->minval); +-                  bcopy((char *)&stat->meanval, (char *)&value, sizeof(value)); ++                  memmove((char *)&value, (char *)&stat->meanval, sizeof(value)); +                   value          = htonl(value); +-                  bcopy((char *)&value, (char *)&stat->meanval, sizeof(value)); +-                  bcopy((char *)&stat->stdev, (char *)&value, sizeof(value)); ++                  memmove((char *)&stat->meanval, (char *)&value, sizeof(value)); ++                  memmove((char *)&value, (char *)&stat->stdev, sizeof(value)); +                   value          = htonl(value); +-                  bcopy((char *)&value, (char *)&stat->stdev, sizeof(value)); ++                  memmove((char *)&stat->stdev, (char *)&value, sizeof(value)); +                   stat->maxval   = htonl(stat->maxval); +                   stat++; +                   len -= sizeof (*stat); +@@ -1535,8 +1535,8 @@ print_time(struct timeval *tvp) +    char *retn = ArgusPrintTimeBuf, *ptr; +    struct tm *tm, tmbuf; +  +-   bzero (timeZoneBuf, sizeof(timeZoneBuf)); +-   bzero (ArgusPrintTimeBuf, sizeof(ArgusPrintTimeBuf)); ++   memset (timeZoneBuf, 0, sizeof(timeZoneBuf)); ++   memset (ArgusPrintTimeBuf, 0, sizeof(ArgusPrintTimeBuf)); +  +    if ((tm = localtime_r ((time_t *)&tvp->tv_sec, &tmbuf)) != NULL) { +       if (uflag) +@@ -1614,8 +1614,8 @@ lookup_nsap(struct ArgusParserStruct *pa +           tp->e_addr1 == j && +           tp->e_addr2 == k && +           tp->e_nsap[0] == nlen && +-          bcmp((char *)&(nsap[1]), +-         (char *)&(tp->e_nsap[1]), nlen) == 0) ++          ( nlen == 0 ? 0 : memcmp((char *)&(nsap[1]), ++         (char *)&(tp->e_nsap[1]), nlen) == 0)) +          return tp; +       else +          tp = tp->e_nxt; +@@ -1623,7 +1623,7 @@ lookup_nsap(struct ArgusParserStruct *pa +    tp->e_addr1 = j; +    tp->e_addr2 = k; +    tp->e_nsap = (u_char *) calloc(1, nlen + 1); +-   bcopy(nsap, tp->e_nsap, nlen + 1); ++   memmove(tp->e_nsap, nsap, nlen + 1); +    tp->e_nxt = (struct enamemem *)calloc(1, sizeof(*tp)); +  +    return tp; +@@ -1696,7 +1696,7 @@ ArgusInitEprotoarray(struct ArgusParserS + { +    struct ArgusEtherTypeStruct *p = argus_ethertype_names; +  +-   bzero ((char *)parser->argus_eproto_db, sizeof (parser->argus_eproto_db)); ++   memset ((char *)parser->argus_eproto_db, 0, sizeof (parser->argus_eproto_db)); +  +    while (p->range != NULL) { +       int i, start, end; +@@ -2209,7 +2209,7 @@ etheraddr_string(u_char *ep) +    char *cp = etheraddrbuf; +    u_int i, j; +  +-   bzero (cp, sizeof(etheraddrbuf)); ++   memset (cp, 0, sizeof(etheraddrbuf)); +    if ((j = *ep >> 4) != 0) +       *cp++ = hex[j]; +    *cp++ = hex[*ep++ & 0xf]; diff --git a/package/argus/argus.mk b/package/argus/argus.mk new file mode 100644 index 000000000..757adc28f --- /dev/null +++ b/package/argus/argus.mk @@ -0,0 +1,92 @@ +############################################################# +# +# argus +# +############################################################# +ARGUS_VER:=3.0.0.rc.34 +ARGUS_SOURCE:=argus_$(ARGUS_VER).orig.tar.gz +ARGUS_PATCH:=argus_$(ARGUS_VER)-1.diff.gz +ARGUS_SITE:=ftp://ftp.debian.org/debian/pool/main/a/argus/ +ARGUS_DIR:=$(BUILD_DIR)/argus-$(ARGUS_VER) +ARGUS_CAT:=$(ZCAT) +ARGUS_BINARY:=bin/argus +ARGUS_TARGET_BINARY:=usr/sbin/argus + +ARGUS_CONFIG_OPTS:= +ifneq ($(strip $(BR2_LARGEFILE)),y) +ARGUS_CONFIG_OPTS += --disable-largefile +endif + +ARGUS_TRAP_CHECK=ac_cv_lbl_unaligned_fail=yes +ifeq ($(BR2_i386),y) +ARGUS_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no +endif +ifeq ($(BR2_x86_64),y) +ARGUS_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no +endif +ifeq ($(BR2_m68k),y) +ARGUS_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no +endif +ifeq ($(BR2_s390),y) +ARGUS_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no +endif +ifeq ($(BR2_powerpc)$(BR2_ENDIAN),yBIG) +ARGUS_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no +endif + +$(DL_DIR)/$(ARGUS_SOURCE): +	$(WGET) -P $(DL_DIR) $(ARGUS_SITE)/$(ARGUS_SOURCE) + +$(DL_DIR)/$(ARGUS_PATCH): +	$(WGET) -P $(DL_DIR) $(ARGUS_SITE)/$(ARGUS_PATCH) + +argus-source: $(DL_DIR)/$(ARGUS_SOURCE) $(DL_DIR)/$(ARGUS_PATCH) + +$(ARGUS_DIR)/.unpacked: $(DL_DIR)/$(ARGUS_SOURCE) $(DL_DIR)/$(ARGUS_PATCH) +	$(ARGUS_CAT) $(DL_DIR)/$(ARGUS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - +	toolchain/patch-kernel.sh $(ARGUS_DIR) package/argus/ argus\*.patch +ifneq ($(ARGUS_PATCH),) +	(cd $(ARGUS_DIR) && $(ARGUS_CAT) $(DL_DIR)/$(ARGUS_PATCH) | patch -p1) +	if [ -d $(ARGUS_DIR)/debian/patches ]; then \ +		toolchain/patch-kernel.sh $(ARGUS_DIR) $(ARGUS_DIR)/debian/patches \*.patch ; \ +	fi +endif +	touch $(ARGUS_DIR)/.unpacked + +$(ARGUS_DIR)/.configured: $(ARGUS_DIR)/.unpacked +	(cd $(ARGUS_DIR); rm -rf config.cache; \ +		$(TARGET_CONFIGURE_OPTS) CC_FOR_BUILD="$(HOSTCC)" \ +		CFLAGS="$(TARGET_CFLAGS)" \ +		$(ARGUS_TRAP_CHECK) \ +		./configure \ +		--target=$(GNU_TARGET_NAME) \ +		--host=$(GNU_TARGET_NAME) \ +		--build=$(GNU_HOST_NAME) \ +		--prefix=/usr \ +		$(ARGUS_CONFIG_OPTS) \ +	); +	touch $(ARGUS_DIR)/.configured + +$(ARGUS_DIR)/$(ARGUS_BINARY): $(ARGUS_DIR)/.configured +	$(TARGET_CONFIGURE_OPTS) $(MAKE) CC=$(TARGET_CC) -C $(ARGUS_DIR) + +$(TARGET_DIR)/$(ARGUS_TARGET_BINARY): $(ARGUS_DIR)/$(ARGUS_BINARY) +	cp -dpf $(ARGUS_DIR)/$(ARGUS_BINARY) $@ +	$(STRIP) $@ + +argus: uclibc libpcap $(TARGET_DIR)/$(ARGUS_TARGET_BINARY) + +argus-clean: +	-$(MAKE) -C $(ARGUS_DIR) clean +	rm -f $(TARGET_DIR)/$(ARGUS_TARGET_BINARY) + +argus-dirclean: +	rm -rf $(ARGUS_DIR) +############################################################# +# +# Toplevel Makefile options +# +############################################################# +ifeq ($(strip $(BR2_PACKAGE_ARGUS)),y) +TARGETS+=argus +endif | 
