소스 검색

db_flatstore: free id pointer if no more space for table name

- related to previus commit on this module
- keep table name null terminated
Daniel-Constantin Mierla 12 년 전
부모
커밋
6a981d3d92
1개의 변경된 파일3개의 추가작업 그리고 1개의 파일을 삭제
  1. 3 1
      modules/db_flatstore/km_flat_id.c

+ 3 - 1
modules/db_flatstore/km_flat_id.c

@@ -52,9 +52,10 @@ struct flat_id* new_flat_id(char* dir, char* table)
 
 	/* alloc memory for the table name */
 	t_len = strlen(table);
-	t = (char*)pkg_malloc(t_len);
+	t = (char*)pkg_malloc(t_len+1);
 	if (!t) {
 		LM_ERR("no pkg memory left\n");
+		pkg_free(ptr);
 		return 0;
 	}
 	memset(t, 0, t_len);
@@ -62,6 +63,7 @@ struct flat_id* new_flat_id(char* dir, char* table)
 	ptr->dir.s = dir;
 	ptr->dir.len = strlen(dir);
 	memcpy(t, table, t_len);
+	t[t_len] = '\0';
 	ptr->table.s = t;
 	ptr->table.len = t_len;