Commit Graph

184 Commits

Author SHA1 Message Date
Ronnie Sahlberg eec9a1e95a add a define that controls explicitely whether we want to use guard pages (if available) or not.
let it default to     want-guard-pages  since the existing code does that.



svn path=/trunk/; revision=17562
2006-03-10 05:15:52 +00:00
Gerald Combs 99a14bf9f1 From Jeff Morriss:
emem.c wouldn't compile with EP_DEBUG_FREE and SE_DEBUG_FREE defined.

  The attached patch fixes that and cleans up some warnings that showed
  up with those two were defined, too.  (In fact 95% of the patch is
  for warnings.)

Fix up whitespace.

svn path=/trunk/; revision=17500
2006-03-07 16:31:47 +00:00
Luis Ontanon 65f5262bb6 Rename set_string_hash... into se_tree_xxx_string as proposed by ronnie for consistency whith its real nature.
svn path=/trunk/; revision=17496
2006-03-07 14:10:30 +00:00
Luis Ontanon 888fc30d27 use an elaborated key for the string keyed "hash table"
svn path=/trunk/; revision=17491
2006-03-07 06:33:47 +00:00
Luis Ontanon 8dbad83e5c Add a hash table with string keys based on the red/black tree.
svn path=/trunk/; revision=17485
2006-03-07 01:15:29 +00:00
Ronnie Sahlberg 745994c364 add helper to build (red/black) trees from a key that is a vector of guin32 arrays.
test this functionality by calling these vector insert/lookup tree functions from the nfs dissector for when filehandles are used as a key.

these vector functions could also be used to efficiently store conversations :
se_tree_key_t[6] = {
	{ addr_len/4,   &src_addr },
	{ addr_len/4,	&dst_addr },
	{ 1,		&src_port32 },
	{ 1,		&dst_port32 },
	{ 1,		&protocol32 },
	{ 0, NULL }
}


(the nfs dissector needs a LOT of work. It is very painful to work with 
very large nfs traces with all the memory it wastes (and eats) as well as how slow all the tables make it)



svn path=/trunk/; revision=17477
2006-03-06 10:25:19 +00:00
Ronnie Sahlberg 0881211a12 initial implementation of binary tree support with se allocation scope
this is to test out a basic implementation of binary trees and the api required for the helpers


svn path=/trunk/; revision=17467
2006-03-05 04:01:34 +00:00
Gerald Combs 2eadd89e0f Use intptr_t for int-to-pointer conversions.
svn path=/trunk/; revision=17457
2006-03-03 20:44:53 +00:00
Gerald Combs f85a158981 Add guard pages to emem.c. GP memory is protected using mprotect()
under UNIX and VirtualProtect() under Windows.  This probably breaks 
compatibility with Windows 95/98/ME.

svn path=/trunk/; revision=17424
2006-02-27 20:51:53 +00:00
Gerald Combs 64104b1749 Print an error when we detect memory corruption. Fix a typo in a comment.
svn path=/trunk/; revision=17395
2006-02-23 23:12:42 +00:00
Guy Harris 58ed459c33 Have the emem.c memdup routines accept and return "void *", as
"memcpy()" does; that eliminates some compiler warnings ("void *" is the
type usually used for "generic pointer").

svn path=/trunk/; revision=17297
2006-02-14 08:34:20 +00:00
Gerald Combs f816511ea9 In packet-cops.c use proto_item_append_text() instead of creating a
separate buffer.  Fixes the current Buildbot failure.

Don't let the sprint_realloc_* functions reallocate ep_allocated memory.
Add comments warning against this in the future.

In emem.c, make sure we don't use an extra 100k every stinkin' time
someone wants to allocate memory when debugging is enabled.

Fixup whitespace.

svn path=/trunk/; revision=17051
2006-01-18 20:02:19 +00:00
Gerald Combs 24bd796553 Pass the correct arguments to fopen().
svn path=/trunk/; revision=17002
2006-01-11 17:18:33 +00:00
Gerald Combs 6d3b121deb Fix compiling under GLib 1, squelch a gcc warning.
svn path=/trunk/; revision=16998
2006-01-11 02:05:05 +00:00
Gerald Combs 0c66b4dff9 Close "/dev/urandom" if we manage to open it.
svn path=/trunk/; revision=16990
2006-01-10 21:31:33 +00:00
Gerald Combs 10c86094e5 Allocate memory on 8-byte boundaries again. Tweak the way we
fill the canary data.

svn path=/trunk/; revision=16989
2006-01-10 21:12:48 +00:00
Guy Harris c38b12da6d Allowing pointer arithmetic on "void *"s is a GCCism; cast "void *"s to
"char *" before adding an offset to them.

svn path=/trunk/; revision=16985
2006-01-10 09:01:35 +00:00
Gerald Combs c919d31d09 Add canary values after each allocation. If our canaries values don't
match when we call {ep|se}_free_all(), throw an assertion.

svn path=/trunk/; revision=16984
2006-01-09 23:11:40 +00:00
Ronnie Sahlberg 8a5ad119bf if passed a NULL string, make se_strdup() return the static string
"<NULL>" instead of dumping.

This allows callers to not have to check if the string is NULL or not.


This fixes bugs 614 615 617 620 621 and 623




svn path=/trunk/; revision=16752
2005-12-09 22:06:38 +00:00
Guy Harris 67b91b5163 Add "ep_strdup_vprintf()" and "se_strdup_vprintf()", for completeness.
Make them not reuse a va_list; there's no guarantee that it can be
used more than once and, in fact, on some platforms, you *can't* use it
more than once.  Based on a patch by Pekka Pietikainen.

Clean up indentation a bit.

svn path=/trunk/; revision=16174
2005-10-10 08:24:56 +00:00
Luis Ontanon 4ef4ca657d make .._strndup() not to call strndup.
svn path=/trunk/; revision=16167
2005-10-08 12:35:51 +00:00
Luis Ontanon 05cd36e678 ep_strndup and se_strndup do not have to expect strings to be null terminated.
svn path=/trunk/; revision=16144
2005-10-06 18:52:19 +00:00
Luis Ontanon 9860d26c68 emem.[ch]:
Add a simple stack implememtation that uses ep_alloc
Add ep_new() ep_new0() macros

tpg.[ch]:
use the stack in tpg helpers


svn path=/trunk/; revision=16061
2005-10-01 10:36:57 +00:00
Gerald Combs 12c3bd75d3 Fix a typo.
svn path=/trunk/; revision=15672
2005-09-02 19:50:01 +00:00
Gerald Combs ac90099d13 Add a pair of #defines to emem.c that make ep_alloc() and se_alloc()
use individual g_malloc() calls instead of memchunks.  This lets us use
tools like Valgrind and ElectricFence to find bugs.

In the H.245 dissector, set h245_pi to NULL after we're done with
it so that we don't go stomping through our memchunks with muddy
boots later on.  Fixes the current Buildbot menagerie failure.

svn path=/trunk/; revision=15539
2005-08-26 15:45:31 +00:00
Luis Ontanon 0de8a67599 more allocators se_alloc0() se_memdups() se_strdup() se_strndup() se_strdup_printf()
svn path=/trunk/; revision=15364
2005-08-16 00:55:08 +00:00
Ronnie Sahlberg 055e2596d9 Add beginning of seasonal allocation in addition to the existing ephemeral ones.
svn path=/trunk/; revision=15301
2005-08-12 08:51:08 +00:00
Luis Ontanon 10844226cf Remove two warnings
svn path=/trunk/; revision=15109
2005-07-27 00:45:02 +00:00
Luis Ontanon c5688891a1 new functions:
ep_tvb_memdup()
ep_alloc0()
ep_strsplit()

add all of the ep_ allocators to libethereal.def

svn path=/trunk/; revision=15100
2005-07-26 18:32:12 +00:00
Luis Ontanon 2803839cba I believe we should use DISSECTOR_ASSERT instead of g_assert.
fix and clean g_strdup_printf()


svn path=/trunk/; revision=15019
2005-07-24 01:21:38 +00:00
Luis Ontanon d9c2273262 add some utility functions that use ep_alloc instead of g_malloc.
ep_memdup
ep_strdup
ep_strndup
ep_strdup_printf


svn path=/trunk/; revision=15018
2005-07-24 00:29:57 +00:00
Ronnie Sahlberg c13d85f62d include stdlib instead of malloc.h
svn path=/trunk/; revision=15004
2005-07-22 23:38:51 +00:00
Jörg Mayer 5731769818 Set svn:keywords and svn:eol-style
svn path=/trunk/; revision=14996
2005-07-22 17:55:47 +00:00
Ronnie Sahlberg c841beb71b EMEM : a simple and FAST api to allocate memory that will be automatically freed() when the next packet is dissected.
This offesr memory allocation with a packet  scope making memory leaks less likely and memory management faster.


Add initialization calls for both tethereal and ethereal.

Convert the ip_to_str() function to use this and avoid doing the silly rotating buffers thing it previously did.


We also need an equivalent set of functions for allocation with capture file scope (free when next capture is loaded) but i dont know where to put the free_all call.



svn path=/trunk/; revision=14984
2005-07-22 07:46:58 +00:00