[PATCH 09/11] discover: Null-terminate buffer in user_event_process()

Samuel Mendoza-Jonas sam.mj at au1.ibm.com
Thu Nov 12 15:34:39 AEDT 2015


Fixes Coverity defect #30480

Signed-off-by: Samuel Mendoza-Jonas <sam.mj at au1.ibm.com>
---
 discover/user-event.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/discover/user-event.c b/discover/user-event.c
index 69defa3..8cad1a9 100644
--- a/discover/user-event.c
+++ b/discover/user-event.c
@@ -488,10 +488,10 @@ static void user_event_handle_message(struct user_event *uev, char *buf,
 static int user_event_process(void *arg)
 {
 	struct user_event *uev = arg;
-	char buf[PBOOT_USER_EVENT_SIZE];
+	char buf[PBOOT_USER_EVENT_SIZE + 1];
 	int len;
 
-	len = recvfrom(uev->socket, buf, sizeof(buf), 0, NULL, NULL);
+	len = recvfrom(uev->socket, buf, PBOOT_USER_EVENT_SIZE, 0, NULL, NULL);
 
 	if (len < 0) {
 		pb_log("%s: socket read failed: %s", __func__, strerror(errno));
@@ -503,6 +503,8 @@ static int user_event_process(void *arg)
 		return 0;
 	}
 
+	buf[len] = '\0';
+
 	pb_debug("%s: %u bytes\n", __func__, len);
 
 	user_event_handle_message(uev, buf, len);
-- 
2.6.2



More information about the Petitboot mailing list