fix_hostname: zero length host name caused -1 index offset
If a URL is given with a zero-length host name, like in "http://:80" or just ":80", `fix_hostname()` will index the host name pointer with a -1 offset (as it blindly assumes a non-zero length) and both read and assign that address. CVE-2015-3144 Bug: http://curl.haxx.se/docs/adv_20150422D.html Reported-by: Hanno Böck
This commit is contained in:
@@ -3627,7 +3627,7 @@ static void fix_hostname(struct SessionHandle *data,
|
|||||||
host->dispname = host->name;
|
host->dispname = host->name;
|
||||||
|
|
||||||
len = strlen(host->name);
|
len = strlen(host->name);
|
||||||
if(host->name[len-1] == '.')
|
if(len && (host->name[len-1] == '.'))
|
||||||
/* strip off a single trailing dot if present, primarily for SNI but
|
/* strip off a single trailing dot if present, primarily for SNI but
|
||||||
there's no use for it */
|
there's no use for it */
|
||||||
host->name[len-1]=0;
|
host->name[len-1]=0;
|
||||||
|
|||||||
Reference in New Issue
Block a user