From 24f934dfea2d4e57a186cb863519b83395d60000 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Wed, 28 Dec 2016 22:52:02 +0200 Subject: [PATCH] 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... --- src/engrave.c | 7 ++++--- src/region.c | 1 + src/shk.c | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) 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 */ 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;