]> granicus.if.org Git - nethack/commitdiff
Silence some Valgrind errors
authorPasi Kallinen <paxed@alt.org>
Wed, 28 Dec 2016 20:52:02 +0000 (22:52 +0200)
committerPasi Kallinen <paxed@alt.org>
Wed, 28 Dec 2016 20:52:08 +0000 (22:52 +0200)
Need to have the allocated memory explicitly cleared for Valgrind
to know it.  We should probably start using calloc or something...

src/engrave.c
src/region.c
src/shk.c

index faa813351435e8e62aac9d58afc7510d0e4ddbf1..6bb71b9cd1d6a4c132d326e5fe6d79d09c524b37 100644 (file)
@@ -385,11 +385,12 @@ long e_time;
 xchar e_type;
 {
     struct engr *ep;
+    unsigned smem = strlen(s) + 1;
 
     if ((ep = engr_at(x, y)) != 0)
         del_engr(ep);
-    ep = newengr(strlen(s) + 1);
-    (void) memset((genericptr_t)ep, 0, sizeof(struct engr));
+    ep = newengr(smem);
+    (void) memset((genericptr_t)ep, 0, smem + sizeof(struct engr));
     ep->nxt_engr = head_engr;
     head_engr = ep;
     ep->engr_x = x;
@@ -401,7 +402,7 @@ xchar e_type;
         exercise(A_WIS, TRUE);
     ep->engr_time = e_time;
     ep->engr_type = e_type > 0 ? e_type : rnd(N_ENGRAVE - 1);
-    ep->engr_lth = strlen(s) + 1;
+    ep->engr_lth = smem;
 }
 
 /* delete any engraving at location <x,y> */
index 3ab0317b22f550165b8d5d2d110538562801b83d..b38936c81d13d7034377613f717ad7450c1c1f29 100644 (file)
@@ -91,6 +91,7 @@ int nrect;
     NhRegion *reg;
 
     reg = (NhRegion *) alloc(sizeof(NhRegion));
+    (void) memset((genericptr_t)reg, 0, sizeof(NhRegion));
     /* Determines bounding box */
     if (nrect > 0) {
         reg->bounding_box = rects[0];
index a914a56d7159cd6beb77a593049cca35da51a010..abd9a33b088bdfca4e229257c8c6f7cc55f2adff 100644 (file)
--- a/src/shk.c
+++ b/src/shk.c
@@ -3307,6 +3307,7 @@ long cost;
             return;
         }
     tmp_dam = (struct damage *) alloc((unsigned) sizeof(struct damage));
+    (void) memset((genericptr_t)tmp_dam, 0, sizeof(struct damage));
     tmp_dam->when = monstermoves;
     tmp_dam->place.x = x;
     tmp_dam->place.y = y;