summaryrefslogtreecommitdiff
path: root/os_dep.c
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2020-04-10 23:32:35 +0300
committerIvan Maidanski <ivmai@mail.ru>2020-04-10 23:32:35 +0300
commitc29373ea17ebe7c22be4762b33f49f27383e9cca (patch)
tree6f1fc8adc75581b83fb053fb37d8ed7253620332 /os_dep.c
parent9bbeb2cb5cf4a69a0c26f331f7fdb296d72c5170 (diff)
downloadbdwgc-c29373ea17ebe7c22be4762b33f49f27383e9cca.tar.gz
Eliminate 'passing tainted var maps_buf to tainted sink' code defect FP
* os_dep.c [NEED_PROC_MAPS && LINT2] (GC_get_maps): Clear maps_buf content (if maps_buf is non-null) before passing to GC_scratch_recycle_no_gww().
Diffstat (limited to 'os_dep.c')
-rw-r--r--os_dep.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/os_dep.c b/os_dep.c
index 61d988ae..e4fcface 100644
--- a/os_dep.c
+++ b/os_dep.c
@@ -199,6 +199,11 @@ GC_INNER char * GC_get_maps(void)
int f;
while (maps_size >= maps_buf_sz) {
+# ifdef LINT2
+ /* Workaround passing tainted maps_buf to a tainted sink. */
+ if (maps_buf != NULL)
+ BZERO(maps_buf, maps_buf_sz);
+# endif
GC_scratch_recycle_no_gww(maps_buf, maps_buf_sz);
/* Grow only by powers of 2, since we leak "too small" buffers.*/
while (maps_size >= maps_buf_sz) maps_buf_sz *= 2;