L:

In the latest cvs, I'm seeing the warning from isLocalAddress().

Mar  4 12:07:48 tigger ntop[7782]: TEMP: flowsProcess() LastSeenWatchPlugin
deviceId=1
Mar  4 12:07:48 tigger ntop[7782]: TEMP: handleLsPacket(1158866564, ...)
Mar  4 12:07:48 tigger ntop[7782]: WARNING: Index 1158866564 out of range
[0..2]
Mar  4 12:07:48 tigger ntop[7782]:    *****ntop backtrace*****
Mar  4 12:07:48 tigger ntop[7782]:       backtrace is:
Mar  4 12:07:48 tigger ntop[7782]:            0.
/usr/lib/libntop-2.1.58pre.so(isLocalAddress+0xac) [0x40118f04]
Mar  4 12:07:48 tigger ntop[7782]:            1.
/usr/lib/libntop-2.1.58pre.so(isPseudoLocalAddress+0x20) [0x401196ec]
Mar  4 12:07:48 tigger ntop[7782]:            2.
/usr/lib/ntop/plugins/lastSeenPlugin.so(strftime+0x104e) [0x4062f04e]
Mar  4 12:07:48 tigger ntop[7782]:            3.
/usr/lib/libntop-2.1.58pre.so [0x4010bc47]
Mar  4 12:07:48 tigger ntop[7782]:            4.
/usr/lib/libntop-2.1.58pre.so(processPacket+0x520) [0x4010c494]
Mar  4 12:07:48 tigger ntop[7782]:            5. /usr/lib/libpcap.so.0.6.2
[0x4060ebf4]
Mar  4 12:07:48 tigger ntop[7782]:            6.
/usr/lib/libpcap.so.0.6.2(pcap_dispatch+0x5b) [0x4060ff0b]
Mar  4 12:07:48 tigger ntop[7782]:            7.
/usr/lib/libntop-2.1.58pre.so(pcapDispatch+0x143) [0x401059ff]
Mar  4 12:07:48 tigger ntop[7782]:            8. /lib/i686/libpthread.so.0
[0x40455941]
Mar  4 12:07:48 tigger ntop[7782]:            9. /usr/bin/ntop(__clone+0x3a)
[0x420da1ca]

Adding a couple of messages to pbuf.c
static void flowsProcess(const struct pcap_pkthdr *h, const u_char *p, int
deviceId) {
  FlowFilterList *list = myGlobals.flowsList;

  while(list != NULL) {
    if((list->pluginStatus.activePlugin)
       && (list->fcode[deviceId].bf_insns != NULL)
       && (bpf_filter(list->fcode[deviceId].bf_insns,
                      (u_char*)p, h->len, h->caplen))) {
      incrementTrafficCounter(&list->bytes, h->len);
      incrementTrafficCounter(&list->packets, 1);
      if(list->pluginStatus.pluginPtr != NULL) {
        void(*pluginFunc)(u_char*, const struct pcap_pkthdr*, const
u_char*);
traceEvent(CONST_TRACE_INFO, "TEMP: flowsProcess() %s deviceId=%d\n",
list->flowName, deviceId);
        pluginFunc = (void(*)(u_char *_deviceId, const struct pcap_pkthdr*,
                              const
u_char*))list->pluginStatus.pluginPtr->pluginFunc;
        pluginFunc((u_char*)&deviceId, h, p);
#ifdef DEBUG
        printf("Match on %s for '%s'\n", myGlobals.device[deviceId].name,
               list->flowName);
#endif
      }
    } else {
#ifdef DEBUG
      traceEvent(CONST_TRACE_INFO, "No match on %s for '%s'\n",
myGlobals.device[deviceId].name,
                 list->flowName);
#endif
    }

    list = list->next;
  }
}


Looks like the int -> u_char conversion is messed up??  Now that we're using
the value?


-----Burton

_______________________________________________
Ntop-dev mailing list
[EMAIL PROTECTED]
http://listgateway.unipi.it/mailman/listinfo/ntop-dev

Reply via email to