Przeglądaj źródła

db_postgres: avoid potential double free if sb url parsing fails

Daniel-Constantin Mierla 7 lat temu
rodzic
commit
3614b4e66d
1 zmienionych plików z 4 dodań i 2 usunięć
  1. 4 2
      src/modules/db_postgres/pg_uri.c

+ 4 - 2
src/modules/db_postgres/pg_uri.c

@@ -255,8 +255,10 @@ static int parse_postgres_uri(struct pg_uri *res, str *uri)
 	return 0;
 
 err:
-	if(prev_token)
-		pkg_free(prev_token);
+	if(prev_token) {
+		if(res==NULL || (res->username!=prev_token && res->host!=prev_token))
+			pkg_free(prev_token);
+	}
 	if(res == NULL)
 		return -1;
 	if(res->username) {