From 19c65ab54fbe5da8a7ca9a7a24f0447b882ef6cd Mon Sep 17 00:00:00 2001 From: leitner Date: Tue, 16 Jun 2020 12:40:57 +0000 Subject: [PATCH] fix two complaints by clang's static analyzer --- ent.c | 8 ++++++-- textcode/scan_jsonescape.c | 5 +++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ent.c b/ent.c index 848d84a..e044076 100644 --- a/ent.c +++ b/ent.c @@ -128,8 +128,12 @@ void marshalhelper(struct letters* s) { void marshal(struct letters* s) { fprintf(stderr,"nodes=%zu, datasize=%zu\n",nodes,datasize); - heap=malloc((nodes+1)*sizeof(uint32_t)+datasize); - if (!heap) nomem(); + { + size_t l; + heap=malloc(l=(nodes+1)*sizeof(uint32_t)+datasize); + if (!heap) nomem(); + memset(heap,0,l); + } marshaled=(uint32_t*)heap; marshaled[0]=nodes+1; data=heap+(nodes+1)*sizeof(uint32_t); diff --git a/textcode/scan_jsonescape.c b/textcode/scan_jsonescape.c index 585e87d..3d30401 100644 --- a/textcode/scan_jsonescape.c +++ b/textcode/scan_jsonescape.c @@ -6,8 +6,8 @@ size_t scan_jsonescape(const char *src,char *dest,size_t *destlen) { register const unsigned char* s=(const unsigned char*) src; size_t written=0,i; char c; - unsigned int prev,cur,todo; - prev=cur=(unsigned int)-1; + unsigned int prev,todo; + prev=(unsigned int)-1; for (i=0; s[i]; ++i) { if (s[i]=='"') { if (prev!=(unsigned int)-1) goto abort; @@ -27,6 +27,7 @@ size_t scan_jsonescape(const char *src,char *dest,size_t *destlen) { case 'u': { size_t j; + unsigned int cur; for (cur=j=0; j<4; ++j) { char x=scan_fromhex(s[i+2+j]); if (x<0) goto abort; // not hex -> invalid input