From 94c2fd5371a0ca84b4ec8011bdd56197a8c3976a Mon Sep 17 00:00:00 2001 From: Varinder Pratap Date: Mon, 23 Sep 2024 12:02:17 +0530 Subject: [PATCH] Fixed memory initialization & NULL free issue. Signed-off-by: Varinder Pratap wq Change-Id: I0d6e2bf57c3260d8715346d91b3e6eb163bf486d --- src/sdb.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/sdb.c b/src/sdb.c index 7b33f8a..e078d0e 100755 --- a/src/sdb.c +++ b/src/sdb.c @@ -380,11 +380,9 @@ apacket *get_apacket(void) { apacket *p = malloc(sizeof(apacket)); if(p == 0) { - // free only being done to resolve SVACE issue. - free(p) ; fatal("failed to allocate an apacket"); } - memset(p, 0, sizeof(apacket) - MAX_PAYLOAD); + memset(p, 0, sizeof(apacket)); return p; } @@ -650,8 +648,13 @@ static void send_connect(atransport *t) if (extcmd != NULL) { char extbuf[BUF_SIZE] = {0,}; snprintf(extbuf, sizeof extbuf, "::%s", extcmd); - strncat((char*) cp->data, extbuf, sizeof(cp->data) - strlen((const char*)cp->data)- 1); + if ((strlen((const char*)cp->data) + strlen(extbuf) + 1) <= sizeof(cp->data)) { + strncat((char*) cp->data, extbuf, sizeof(cp->data) - strlen((const char*)cp->data)- 1); + } else { + E("Buffer overflow detected while concatenating extcmd\n"); + } } + cp->msg.data_length = strlen((char*) cp->data) + 1; D("CNXN data: %s\n", (char*)cp->data); -- 2.34.1