From a1a8c94577dde1ba63badc32e5564470b136c33d Mon Sep 17 00:00:00 2001
From: Martin Stjernholm <mast@lysator.liu.se>
Date: Sun, 3 Sep 2000 01:11:27 +0200
Subject: [PATCH] Added dmalloc_is_invalid_memory_block, as per hubbes
 instructions.

Rev: src/dmalloc.h:1.27
Rev: src/pike_memory.c:1.81
---
 src/dmalloc.h     |  3 ++-
 src/pike_memory.c | 10 +++++++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/dmalloc.h b/src/dmalloc.h
index 28ff3a42c5..db1b8f6804 100644
--- a/src/dmalloc.h
+++ b/src/dmalloc.h
@@ -1,5 +1,5 @@
 /*
- * $Id: dmalloc.h,v 1.26 2000/08/04 01:32:39 hubbe Exp $
+ * $Id: dmalloc.h,v 1.27 2000/09/02 23:11:27 mast Exp $
  */
 
 extern char *debug_xalloc(size_t);
@@ -80,6 +80,7 @@ void dmalloc_add_mmap_entry(struct memory_map *m,
 			    int count,
 			    struct memory_map *recur,
 			    int recur_offset);
+int dmalloc_is_invalid_memory_block(void *block);
 
 
 #else
diff --git a/src/pike_memory.c b/src/pike_memory.c
index 96608188a5..acb722b8fe 100644
--- a/src/pike_memory.c
+++ b/src/pike_memory.c
@@ -10,7 +10,7 @@
 #include "pike_macros.h"
 #include "gc.h"
 
-RCSID("$Id: pike_memory.c,v 1.80 2000/08/16 15:51:20 grubba Exp $");
+RCSID("$Id: pike_memory.c,v 1.81 2000/09/02 23:11:27 mast Exp $");
 
 /* strdup() is used by several modules, so let's provide it */
 #ifndef HAVE_STRDUP
@@ -2245,4 +2245,12 @@ void dmalloc_add_mmap_entry(struct memory_map *m,
   mt_unlock(&debug_malloc_mutex);
 }
 
+int dmalloc_is_invalid_memory_block(void *block)
+{
+  struct memhdr *mh=my_find_memhdr(block,0); 
+  if(!mh) return -1; /* no such known block */
+  if(mh->size < 0) return -2; /* block has been freed */
+  return 0; /* block is valid */
+}
+
 #endif
-- 
GitLab