فهرست منبع

db_mysql: reset prev_token to avoid double free in case of url parse error

- when db api v2 is used (ser modules)
Daniel-Constantin Mierla 11 سال پیش
والد
کامیت
f65bf2c37b
1فایلهای تغییر یافته به همراه2 افزوده شده و 0 حذف شده
  1. 2 0
      modules/db_mysql/my_uri.c

+ 2 - 0
modules/db_mysql/my_uri.c

@@ -175,12 +175,14 @@ static int parse_mysql_uri(struct my_uri* res, str* uri)
 			case '@':
 				st = ST_HOST;
 				res->username = prev_token;
+				prev_token = 0;
 				if (dupl_string(&res->password, begin, uri->s + i) < 0) goto err;
 				begin = uri->s + i + 1;
 				break;
 
 			case '/':
 				res->host = prev_token;
+				prev_token = 0;
 				res->port = str2s(begin, uri->s + i - begin, 0);
 				if (dupl_string(&res->database, uri->s + i + 1, uri->s + uri->len) < 0) goto err;
 				return 0;