Kaynağa Gözat

app_python: dname is always allocated in system memory

- pointing it to static string will crash the free at shutdown
Daniel-Constantin Mierla 8 yıl önce
ebeveyn
işleme
46daf3011d
1 değiştirilmiş dosya ile 14 ekleme ve 2 silme
  1. 14 2
      modules/app_python/app_python_mod.c

+ 14 - 2
modules/app_python/app_python_mod.c

@@ -122,8 +122,20 @@ static int mod_init(void)
 	}
 
 	dname = strdup(dirname(dname_src));
-	if (strlen(dname) == 0)
-		dname = ".";
+	if(dname==NULL) {
+		LM_ERR("no more system memory\n");
+		return -1;
+	}
+	if (strlen(dname) == 0) {
+		free(dname);
+		dname = malloc(2);
+		if(dname==NULL) {
+			LM_ERR("no more system memory\n");
+			return -1;
+		}
+		dname[0] = '.';
+		dname[1] = '\0';
+	}
 	bname = strdup(basename(bname_src));
 	i = strlen(bname);
 	if (bname[i - 1] == 'c' || bname[i - 1] == 'o')