Commit 7d36de2f authored by tnurnberg@noir.wlan.koehntopp.de's avatar tnurnberg@noir.wlan.koehntopp.de
Browse files

Bug#35616: memory overrun on 64-bit linux on setting large values for keybuffer-size

We could allocate chunks larger than 4GB, but did our size-accounting in 32-bit
values. This could lead to spurious warnings, inaccurate accounting, and, in
theory, data loss.

Affected: 64-bit platforms. Debug-build (with safemalloc). At least one buffer
larger than 4GB. For potential data loss, a re-alloc on such a buffer would be
necessary.
parent 51cdfd34
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -74,8 +74,8 @@ uint sf_malloc_prehunc=0, /* If you have problem with core- */
     sf_malloc_endhunc=0,		/* dump when malloc-message.... */
					/* set theese to 64 or 128  */
     sf_malloc_quick=0;			/* set if no calls to sanity */
ulong sf_malloc_cur_memory= 0L;		/* Current memory usage */
ulong sf_malloc_max_memory= 0L;		/* Maximum memory usage */
size_t sf_malloc_cur_memory= 0L;		/* Current memory usage */
size_t sf_malloc_max_memory= 0L;		/* Maximum memory usage */
uint  sf_malloc_count= 0;		/* Number of times NEW() was called */
byte *sf_min_adress= (byte*) ~(unsigned long) 0L,
     *sf_max_adress= (byte*) 0L;
+1 −1
Original line number Diff line number Diff line
@@ -44,8 +44,8 @@ struct st_irem
  struct st_irem *next;		/* Linked list of structures	   */
  struct st_irem *prev;		/* Other link			   */
  char *filename;		/* File in which memory was new'ed */
  size_t datasize;		/* Size requested		   */
  uint32 linenum;		/* Line number in above file	   */
  uint32 datasize;		/* Size requested		   */
  uint32 SpecialValue;		/* Underrun marker value	   */
};