https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3161
Summary: text2pcap.c define trickery breaks strdup() handling
with recent glibc
Product: Wireshark
Version: SVN
Platform: PC
OS/Version: All
Status: NEW
Severity: Major
Priority: Low
Component: Wireshark
AssignedTo: wireshark-bugs@xxxxxxxxxxxxx
ReportedBy: vapier@xxxxxxxxxx
Build Information:
glibc-2.9
linux-2.6.28
gcc-4.3.2
--
the text2pcap.c file tries to setup defines it shouldnt be testing:
#ifndef __USE_XOPEN
# define __USE_XOPEN
#endif
POSIX states that you should only be _XOPEN_SOURCE:
http://www.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html
with recent glibc versions, defining just _XOPEN_SOURCE results in the
prototype for strptime(), but the prototype for strdup() gets dropped. thus
the implicit prototype has an "int" return value which is 32bits even on a
64bit system. you can see how this quickly gets bad.
this is because the value of _XOPEN_SOURCE has meaning and simply defining it
says that it has a value of 0. it should be defined to 600 or 700 in order for
things to work properly.
--- text2pcap.c
+++ text2pcap.c
@@ -90,7 +90,7 @@
# define __USE_XOPEN
#endif
#ifndef _XOPEN_SOURCE
-# define _XOPEN_SOURCE
+# define _XOPEN_SOURCE 600
#endif
#include <ctype.h>
--
Configure bugmail: https://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.