Commit Graph

101 Commits

Author SHA1 Message Date
Kovarththanan Rajaratnam b91827f5a0 Avoid calling emem_create_chunk() needlessly
svn path=/trunk/; revision=29734
2009-09-06 08:10:12 +00:00
Jörg Mayer a3c38e1057 Include "proto.h" instead of <proto.h>
svn path=/trunk/; revision=29694
2009-09-04 11:48:04 +00:00
Kovarththanan Rajaratnam e0e33ca74b We now expose the following environment variables:
* WIRESHARK_DEBUG_EP_NO_CHUNKS
 * WIRESHARK_DEBUG_SE_NO_CHUNKS
 * WIRESHARK_DEBUG_EP_NO_CANARY
 * WIRESHARK_DEBUG_SE_NO_CANARY

This allows us to enable/disable memory chunks and canaries at runtime _without_ needing to recompile.

svn path=/trunk/; revision=29375
2009-08-11 09:24:56 +00:00
Kovarththanan Rajaratnam 7702b8766d Use ! defined(EP_DEBUG_FREE) && ! defined(SE_DEBUG_FREE) to guard canary code to get things compiling after r29358.
svn path=/trunk/; revision=29365
2009-08-10 16:36:44 +00:00
Kovarththanan Rajaratnam 3f4f8b0b94 Add unsigned int typecast
svn path=/trunk/; revision=29361
2009-08-09 21:10:04 +00:00
Kovarththanan Rajaratnam 39b1eb1015 g_error() requires a string literal.
svn path=/trunk/; revision=29360
2009-08-09 20:28:38 +00:00
Kovarththanan Rajaratnam 50c9dbca26 Split common parts of ep_free_all and se_free_all into emem_free_all.
svn path=/trunk/; revision=29359
2009-08-09 20:10:19 +00:00
Kovarththanan Rajaratnam ecb5ee8e91 Split common parts of se_alloc and ep_alloc into emem_alloc.
svn path=/trunk/; revision=29358
2009-08-09 19:23:13 +00:00
Bill Meier fdda6e8778 ep_strbuf: fix some bugs and additional changes
-Bugs
  * str->len not set correctly in some cases;
  * trailing '\0' not always accounted for;
  * (issues relating to determining when & how much 
     to expand string buffer).
-Other
  * Change append, append_c, truncate to return 
    pointer to ep_strbuf (similar to the corresponding
    GString functions);
  * Rename certain variables to clarify usage (as I understand
    the intended usage);
  * ep_strbuf_grow: use current allocated length and not current
    string length as the starting point;
  * Optimizations;
  * Add some additional comments to emem.h ep_strbuf section

  * Use consistent indentation throughout emem.c;

svn path=/trunk/; revision=28044
2009-04-14 14:08:19 +00:00
Jörg Mayer 69cc30c611 Another patch to sqelch warnings about asserts in g_strlcpy with NULL source pointer
svn path=/trunk/; revision=27985
2009-04-07 16:43:15 +00:00
Gerald Combs 6348c17c16 size_t fixes.
svn path=/trunk/; revision=27984
2009-04-07 16:36:52 +00:00
Jörg Mayer 409e59c32a Don't crash on linux:
strlen(NULL) isn't an acceptable call.

svn path=/trunk/; revision=27948
2009-04-03 17:32:32 +00:00
Gerald Combs 36f614cc1a Call ep_strbuf_append_printf() from ep_strbuf_append().
svn path=/trunk/; revision=27899
2009-03-30 19:38:47 +00:00
Gerald Combs 6c6c89e835 Add a missing check.
svn path=/trunk/; revision=27875
2009-03-28 05:14:16 +00:00
Gerald Combs 21e87a963f Replace a lot of pointer tracking and some GStrings with emem_strbufs. Add
ep_strbuf_printf and ep_strbuf_append_c.

svn path=/trunk/; revision=27873
2009-03-28 00:27:03 +00:00
Gerald Combs 446d43351c Add initial support for string buffers - ep_allocated, growable strings
similar to GLib's GStrings. Use them to create the list of TCP flags.

svn path=/trunk/; revision=27872
2009-03-27 23:05:37 +00:00
Luis Ontanon 230d917776 Add a debug helper for EP memory corruption
if compiled in and the env var WIRESHARK_DEBUG_EP_CANARY is set:
will check for canary integrity at every call to EP_CHECK_CANARY()
if corruption is found it exits pronting the prior location and the location in which corruption was found.
Hopefully it stops running while the corruptor is still in the stack.

see EP_CHECK_CANARY() calls in packet.c as an example.




svn path=/trunk/; revision=25927
2008-08-05 02:23:35 +00:00
Guy Harris 9e6329860a Fix some warnings - declare some arguments, variables, and structure
members to be const pointers when that's possible, and throw in some
casts when the GLib API fails to have properly consted arguments.

Use ep_strdup_printf() in some cases.

svn path=/trunk/; revision=25596
2008-06-25 03:05:19 +00:00
Anders Broman 36d89bb79c Fix some of the Errors/warnings detected by checkapi.
svn path=/trunk/; revision=25368
2008-05-23 05:55:34 +00:00
Jeff Morriss a5cee04fad Move the file utility functions from wiretap to libwsutil so that
libwireshark (and the plugins using those functions) do not depend on
wiretap on Windows.

While doing that, rename the eth_* functions to ws_*.

svn path=/trunk/; revision=25354
2008-05-22 15:46:27 +00:00
Stig Bjørlykke 1f3f4d39da From Marton Nemeth (bug 2484):
The variables ep_canary[], se_canary[], ep_packet_mem and se_packet_mem are
only used in emem.c, so the visibility can be file local (static).

svn path=/trunk/; revision=25132
2008-04-21 08:58:50 +00:00
Stephen Fisher 726a1caaf1 - Remove GLIB1 code
- Change ugly GLIB version checking statements to GLIB_CHECK_VERSION
- Remove ws_strsplit files because we no longer need to borrow GLIB2's
  g_strsplit code for the no longer supported GLIB1 builds


svn path=/trunk/; revision=24829
2008-04-07 05:22:54 +00:00
Jaap Keuter e1f488293a From Sami Farin:
Reads EMEM_CANARY_DATA_SIZE (15) bytes, compares return value to EMEM_CANARY_SIZE (8).
Also, I also added setbuf call in patch so it reads 15 bytes instead of 4096 or 8192.

svn path=/trunk/; revision=24596
2008-03-10 07:53:46 +00:00
Bill Meier 980b393d0d A few more pedantic fixes ...
svn path=/trunk/; revision=24302
2008-02-11 18:43:15 +00:00
Stig Bjørlykke e14c703106 From Jim Young (bug 2162):
Patch for epan/emem.c functions ep_strndup() and se_strndup() to stop valgrind
message "invalid read of size 1".

svn path=/trunk/; revision=24023
2008-01-07 20:44:32 +00:00
Ronnie Sahlberg b153578afa rework how emem trees indexed by strings so that traversing the tree
will traverse the entries in the lexical order of the key.

add a flag to lookup/insert for strings to specify whether a case 
insensitive key should be used instead of a (default) case sensitive 
key.


svn path=/trunk/; revision=23736
2007-12-04 03:26:50 +00:00
Ronnie Sahlberg c20bb13d67 for nested trees, teach emem about which nodes contain a pointer to a
subtree and which nodes that contain a pointer to user data

teach emem to be able to traverse nested trees


svn path=/trunk/; revision=23733
2007-12-04 01:44:05 +00:00
Ronnie Sahlberg 60c561e2bd add tree traversal functions
svn path=/trunk/; revision=23725
2007-12-03 22:47:23 +00:00
Bill Meier 48bb4deed1 (Somewhat academic): Fix fread related bug (when using GTK1).
svn path=/trunk/; revision=23650
2007-11-28 19:53:36 +00:00
Luis Ontanon dfbac00752 SNMP:
- As noted by Thomas Anders values are not added to the tree anymore. Move the calling of subdissectors to the end of the function, so that the value is added to the tree.
 - add port 8161 to be decoded as SNMP (hey, it's on IANA's services file!)
UAT:
 - do not have the uat reloaded.
OIDS:
 - do not complain if renaming an OID to an identical name



svn path=/trunk/; revision=22704
2007-08-28 15:18:32 +00:00
Guy Harris d2ac4f7133 Check for G_GINT64_MODIFIER in Wireshark as we do in Wiretap.
In all the places where a cast to "long long" or "unsigned long long"
was done, use G_GINT64_MODIFIER and get rid of the cast, as

	1) there's no guarantee that "%ll" works

and

	2) there's no guarantee that "long long" works

(the latter definitely does *NOT* work with MSVC++; the former doesn't
work with regular printf in MSVC++, but it might work with the GLib
printf-based functions).

svn path=/trunk/; revision=21978
2007-05-29 06:56:07 +00:00
Sebastien Tandel 76729e5d0f From David Howells :
Fix compilation failures when building wireshark-0.99.6-SVN-21916 on an
x86_64-unknown-linux-gnu target with gcc version 4.1.2 20070403 (Red Hat
4.1.2-8).

The failures fall into two categories:
  (1) Casts between pointers and 32-bit integers without an intermediary cast
via 'long' or 'unsigned long'.  This results in a compiler warning complaining
about casts between a pointer and an integer of a different size.
  (2) Passing values to "%lld" or similar printf-style format options that the
compiler thinks are a different size.  Such values need to be cast to 'long
long' or 'unsigned long long'.

svn path=/trunk/; revision=21975
2007-05-29 02:43:18 +00:00
Guy Harris 706a028996 In emem_tree_lookup_string(), return NULL if the allocation fails.
svn path=/trunk/; revision=21612
2007-04-28 21:58:42 +00:00
Guy Harris b98d651b21 In calls to the emem_tree routines, forcibly align items not known to be
aligned on 32-bit boundaries.

svn path=/trunk/; revision=21611
2007-04-28 21:09:20 +00:00
Guy Harris 1bc049906a Add some GCC warnings to the standard set, and add some others to the
--enable-extra-gcc-checks set.

If we turn on -pedantic, try turning on -Wno-long-long as well, so that
it's not *so* pedantic that it rejects the 64-bit integral data types
that we explicitly require.

Constify a bunch of stuff, and make some other changes, to get rid of
warnings.

Clean up some indentation.

svn path=/trunk/; revision=21526
2007-04-23 10:59:26 +00:00
Graham Bloice 7710d21893 Fix build failures due to windows.h being included before winsock2.h via other includes
svn path=/trunk/; revision=21335
2007-04-04 12:18:10 +00:00
Gerald Combs e97d1f0866 Squelch Coverity CIDs 225, 226, and 227.
svn path=/trunk/; revision=20552
2007-01-25 06:51:30 +00:00
Ulf Lamping e3330fd922 instead of simply doing an assert when running out of memory in emem, throw a new OutOfMemoryError Exception, so file.c can show at least a better explanation to the user before Wireshark terminates
XXX - to prevent a busy wait, I need a portable way to wait for a short time period, like Sleep() for Windows

svn path=/trunk/; revision=20437
2007-01-15 05:16:13 +00:00
Ulf Lamping c4840e61aa fix a warning
svn path=/trunk/; revision=19907
2006-11-15 23:48:56 +00:00
Ronnie Sahlberg 14810dd30c fix so that tcp.pdu.time works again.
it broken in one of the previous bugfixes to tcp

add a function to print an emem tree to the console for easier emem tree debugging


svn path=/trunk/; revision=19877
2006-11-11 22:39:25 +00:00
Ronnie Sahlberg 2fdf0e4b4b add trees with PErmanent allocation scope which will be useful for constructing
associative arrays for globally unique and persistent mappings such as
oid to name
sid to name
guid to name


svn path=/trunk/; revision=18937
2006-08-17 08:17:48 +00:00
Ronnie Sahlberg 2657b9b701 make creation of subtrees used for the _array tree type use the same allocation scope as its parent and thus become allocation scope agnostic
change all accessor functions to be defines to the emem_tree_ functions.



now   to create a tree with a different scope we only need to create a new
..._tree_create() function   and set up the appropriate defines


(it was a mistake to call the functions   se_tree_create   and se_tree_create_non_persistent,     they should be the other way around    i.e.  se_tree_create_persistent   and se_tree_create )



svn path=/trunk/; revision=18895
2006-08-14 09:36:15 +00:00
Ronnie Sahlberg 8ce8e719e0 rename some structures and defines from the se_tree to the emem_tree prefix
svn path=/trunk/; revision=18894
2006-08-14 08:29:29 +00:00
Ronnie Sahlberg 8529abb69b put a memory allocator function pointer inside the tree structure so that all accessor functions become storage scope agnostic
svn path=/trunk/; revision=18888
2006-08-12 23:27:22 +00:00
Ronnie Sahlberg db2e890949 rename some inline functions from se_ to emem_ prefix as a first step to generalize
teh tree management and to use trees with different storage scope without too much code duplication.


it would be useful with a tree that had indefinite storage instead of the emem functions which commonly have ep or se storage scope.

indefinite storage scope would be useful for example for managing a global and static set of well known guid to name mappings(not yet implemented)    and also for
oid to name mappings.

 

svn path=/trunk/; revision=18886
2006-08-12 22:43:12 +00:00
Anders Broman c72d4e8f2e From Albert Chin:
Fix some C++ comments in C source files and fixes some non-constant initializations.

svn path=/trunk/; revision=18521
2006-06-20 05:57:29 +00:00
Guy Harris 535a8bd006 Not all UN*Xes have MAP_ANONYMOUS; some have MAP_ANON instead, and some
have neither.  For those with MAP_ANON but not MAP_ANONYMOUS, use
MAP_ANON; for those with neither, add some code to use "/dev/zero".

svn path=/trunk/; revision=18488
2006-06-17 02:31:56 +00:00
Jaap Keuter 2288c8590d From Albert Chin
HP-UX doesn't have MAP_ANON but it does have MAP_ANONYMOUS. Moreoever,
according to mmap(2) on RHEL:
       MAP_ANONYMOUS
              The mapping is not backed by any file; the fd and offset argu-
              ments are ignored.  This flag in conjunction with MAP_SHARED is
              implemented since Linux 2.4.

       MAP_ANON
              Alias for MAP_ANONYMOUS. Deprecated.


svn path=/trunk/; revision=18486
2006-06-16 21:30:58 +00:00
Gerald Combs 8958bab6de Tethereal/tethereal -> TShark/tshark.
svn path=/trunk/; revision=18268
2006-05-31 17:38:42 +00:00
Anders Broman 996d4db495 Ethereal->Wireshark
svn path=/trunk/; revision=18234
2006-05-28 19:49:07 +00:00