From: Pasi Kallinen <paxed@alt.org> Date: Wed, 28 Dec 2016 20:52:02 +0000 (+0200) Subject: Silence some Valgrind errors X-Git-Tag: NetHack-3.6.1_RC01~538 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=24f934dfea2d4e57a186cb863519b83395d60000;p=nethack Silence some Valgrind errors Need to have the allocated memory explicitly cleared for Valgrind to know it. We should probably start using calloc or something... --- diff --git a/src/engrave.c b/src/engrave.c index faa813351..6bb71b9cd 100644 --- a/src/engrave.c +++ b/src/engrave.c @@ -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> */ diff --git a/src/region.c b/src/region.c index 3ab0317b2..b38936c81 100644 --- a/src/region.c +++ b/src/region.c @@ -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]; diff --git a/src/shk.c b/src/shk.c index a914a56d7..abd9a33b0 100644 --- 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;