From c02e165cc7a44e525dd55714c4471f1236e96b43 Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Fri, 22 May 2015 12:43:55 +0200 Subject: [PATCH] lib/srdb1: use last @ as delimiter for start of host in db url - allow @ to be part of password - reported by GH#169, Debojit Kakoti --- lib/srdb1/db_id.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/srdb1/db_id.c b/lib/srdb1/db_id.c index aab305408a9..f1969c1b035 100644 --- a/lib/srdb1/db_id.c +++ b/lib/srdb1/db_id.c @@ -81,7 +81,7 @@ static int parse_db_url(struct db_id* id, const str* url) }; enum state st; - unsigned int len, i; + unsigned int len, i, j, a; const char* begin; char* prev_token; @@ -162,6 +162,14 @@ static int parse_db_url(struct db_id* id, const str* url) st = ST_HOST; id->username = prev_token; prev_token = 0; + a = 0; + /* go to last '@' to support when it is part of password */ + for(j = i+1; j < len; j++) { + if(url->s[j]=='@') { + a = j; + } + } + if(a!=0) i = a; if (dupl_string(&id->password, begin, url->s + i) < 0) goto err; begin = url->s + i + 1; break;