Browse Source

pdb: safety check for header length in pdb_msg_dbg()

Daniel-Constantin Mierla 6 năm trước cách đây
mục cha
commit
3c07e2351a
1 tập tin đã thay đổi với 7 bổ sung3 xóa
  1. 7 3
      src/modules/pdb/pdb.c

+ 7 - 3
src/modules/pdb/pdb.c

@@ -148,9 +148,13 @@ static void pdb_msg_dbg(struct pdb_msg msg, char *dbg_msg) {
     char buf[PAYLOADSIZE * 3 + 1];
     char *ptr = buf;
 
-    for (i = 0; i < msg.hdr.length - sizeof(msg.hdr); i++) {
-        ptr += sprintf(ptr,"%02X ", msg.bdy.payload[i]);
-    }
+	if(msg.hdr.length > sizeof(msg.hdr)) {
+		for (i = 0; i < msg.hdr.length - sizeof(msg.hdr); i++) {
+			ptr += sprintf(ptr, "%02X ", msg.bdy.payload[i]);
+		}
+	} else {
+		*ptr = '\0';
+	}
 
     LM_DBG("%s\n"
            "version = %d\ntype = %d\ncode = %d\nid = %d\nlen = %d\n"