Actions
Bug #871
closed1.4.3: src/util-host-os-info.c: missing index() declaration causes core dump
Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
Affected Versions:
Effort:
Difficulty:
Label:
Description
Solaris 10 SPARC with Sun Studio 12.3 compiler.
Before diff applied:
source='util-host-os-info.c' object='util-host-os-info.o' libtool=no \ DEPDIR=.deps depmode=none /bin/bash ../depcomp \ cc -xtarget=ultra -m64 -xcode=pic32 -features=extensions -g -DHAVE_CONFIG_H -I. -I.. -I../libhtp -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/lib -DLOCAL_STATE_DIR=\"/usr/local/var\" -DRELEASE -DDEBUG -DPROFILING -I/usr/local/include -DLIBPCAP_VERSION_MAJOR=1 -DHAVE_PCAP_SET_BUFF -c util-host-os-info.c "counters.h", line 156: warning: anonymous union declaration "source-pcap.h", line 40: warning: zero-sized struct/union "decode-icmpv4.h", line 286: warning: zero-sized struct/union "decode.h", line 357: warning: anonymous union declaration "decode.h", line 361: warning: anonymous union declaration "decode.h", line 382: warning: zero-sized struct/union "decode.h", line 382: warning: anonymous union declaration "detect-tag.h", line 82: warning: anonymous union declaration "flow.h", line 275: warning: anonymous union declaration "flow.h", line 279: warning: anonymous union declaration "detect.h", line 158: warning: anonymous union declaration "detect.h", line 229: warning: anonymous union declaration "detect.h", line 326: warning: anonymous union declaration "detect.h", line 334: warning: anonymous union declaration "detect.h", line 341: warning: anonymous union declaration "detect.h", line 364: warning: anonymous union declaration "detect.h", line 372: warning: anonymous union declaration "detect.h", line 379: warning: anonymous union declaration "stream.h", line 46: warning: anonymous union declaration "util-host-os-info.c", line 248: warning: implicit function declaration: index "util-host-os-info.c", line 248: warning: improper pointer/integer combination: op "=" "util-host-os-info.c", line 255: warning: improper pointer/integer combination: op "="
Running the program in dbx shows the netmask_str variable is not initialized:
11/7/2013 -- 12:03:31 - <Info> - This is Suricata version 1.4.3 RELEASE 11/7/2013 -- 12:03:31 - <Info> - CPUs/cores online: 64 t@1 (l@1) signal SEGV (no mapping at the fault address) in SCHInfoAddHostOSInfo at line 256 in file "util-host-os-info.c" 256 netmask_str[0] = '\0'; (dbx) dump host_os = 0x101e20ce0 "windows" ip_str = 0x101e12d30 "0.0.0.0/0" ip_str_rem = (nil) is_ipv4 = 1 netmask_str = 0x1e12d37 "<bad address 0x0000000001e12d37>" ipv4_addr = (nil) netmask_value = 0 user_data = 0x101e12d50 recursive = '\0' __FUNCTION__ = "SCHInfoAddHostOSInfo" ipv6_addr = (nil) host_os_ip_range = 0x101e20d20 "0.0.0.0/0"
It needs this diff applied to declare index() properly, probably best inserted into suricata-common.h though :) I recompiled and a tee log shows there's no other index() to worry about.
--- suricata-1.4.3/src/util-host-os-info.c.orig Thu Jul 11 12:07:54 2013 +++ suricata-1.4.3/src/util-host-os-info.c Thu Jul 11 12:08:36 2013 @@ -23,6 +23,8 @@ * Host info utility functions */ +#include <strings.h> + #include "suricata-common.h" #include "util-host-os-info.h" #include "util-error.h"
Actions