aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/alloc.c b/src/alloc.c
index faad0b59c87..1019c2af6cc 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -4934,6 +4934,10 @@ valid_pointer_p (void *p)
4934#ifdef WINDOWSNT 4934#ifdef WINDOWSNT
4935 return w32_valid_pointer_p (p, 16); 4935 return w32_valid_pointer_p (p, 16);
4936#else 4936#else
4937
4938 if (ADDRESS_SANITIZER)
4939 return p ? -1 : 0;
4940
4937 int fd[2]; 4941 int fd[2];
4938 4942
4939 /* Obviously, we cannot just access it (we would SEGV trying), so we 4943 /* Obviously, we cannot just access it (we would SEGV trying), so we
@@ -4949,7 +4953,7 @@ valid_pointer_p (void *p)
4949 return valid; 4953 return valid;
4950 } 4954 }
4951 4955
4952 return -1; 4956 return -1;
4953#endif 4957#endif
4954} 4958}
4955 4959
@@ -5048,8 +5052,8 @@ relocatable_string_data_p (const char *str)
5048 struct sdata *sdata 5052 struct sdata *sdata
5049 = (struct sdata *) (str - offsetof (struct sdata, data)); 5053 = (struct sdata *) (str - offsetof (struct sdata, data));
5050 5054
5051 if (valid_pointer_p (sdata) 5055 if (0 < valid_pointer_p (sdata)
5052 && valid_pointer_p (sdata->string) 5056 && 0 < valid_pointer_p (sdata->string)
5053 && maybe_lisp_pointer (sdata->string)) 5057 && maybe_lisp_pointer (sdata->string))
5054 return (valid_lisp_object_p 5058 return (valid_lisp_object_p
5055 (make_lisp_ptr (sdata->string, Lisp_String)) 5059 (make_lisp_ptr (sdata->string, Lisp_String))
@@ -6364,7 +6368,7 @@ mark_object (Lisp_Object arg)
6364 CHECK_ALLOCATED_AND_LIVE (live_symbol_p); 6368 CHECK_ALLOCATED_AND_LIVE (live_symbol_p);
6365 ptr->gcmarkbit = 1; 6369 ptr->gcmarkbit = 1;
6366 /* Attempt to catch bogus objects. */ 6370 /* Attempt to catch bogus objects. */
6367 eassert (valid_lisp_object_p (ptr->function) >= 1); 6371 eassert (valid_lisp_object_p (ptr->function));
6368 mark_object (ptr->function); 6372 mark_object (ptr->function);
6369 mark_object (ptr->plist); 6373 mark_object (ptr->plist);
6370 switch (ptr->redirect) 6374 switch (ptr->redirect)
@@ -6749,7 +6753,7 @@ sweep_symbols (void)
6749 ++num_used; 6753 ++num_used;
6750 sym->s.gcmarkbit = 0; 6754 sym->s.gcmarkbit = 0;
6751 /* Attempt to catch bogus objects. */ 6755 /* Attempt to catch bogus objects. */
6752 eassert (valid_lisp_object_p (sym->s.function) >= 1); 6756 eassert (valid_lisp_object_p (sym->s.function));
6753 } 6757 }
6754 } 6758 }
6755 6759