diff options
author | Daniel Stenberg <daniel@haxx.se> | 2015-04-16 23:52:04 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2015-04-21 23:20:36 +0200 |
commit | 0583e87ada7a3cfb10904ae4ab61b339582c5bd3 (patch) | |
tree | 0d31a571bf1a38b859e6effa93ac7117d1264286 | |
parent | b5f947b8ac0e282c61c75b69cd5b9d37dafc6959 (diff) | |
download | curl-0583e87ada7a3cfb10904ae4ab61b339582c5bd3.tar.gz |
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
-rw-r--r-- | lib/url.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -3627,7 +3627,7 @@ static void fix_hostname(struct SessionHandle *data, host->dispname = 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 there's no use for it */ host->name[len-1]=0; |