瀏覽代碼

pdb: safety check for header length in pdb_msg_dbg()

Daniel-Constantin Mierla 6 年之前
父節點
當前提交
3c07e2351a
共有 1 個文件被更改,包括 7 次插入3 次删除
  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"