[PATCH] Check for embedded nul in url_pct_decode().

"Kevin J. McCarthy" <[email protected]>
Newsgroups gmane.mail.mutt.devel
Message-ID <[email protected]>
Consider %00 an invalid character in a URL.

Thanks to [email protected] for the security report.
---
This is 7 in the list evilrabbit sent.

Also thanks for the comment Alex, but, for me at least I think the
comment makes that last check clearer.  Otherwise I have to stop and
think for a second what it's doing.  I'm old and slower though! :-)

 url.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/url.c b/url.c
index 19a52443..fddbc6f2 100644
--- a/url.c
+++ b/url.c
@@ -60,7 +60,9 @@ static int url_pct_decode (char *s)
       if (s[1] && s[2] &&
 	  isxdigit ((unsigned char) s[1]) &&
 	  isxdigit ((unsigned char) s[2]) &&
-	  hexval (s[1]) >= 0 && hexval (s[2]) >= 0)
+          hexval(s[1]) >= 0 && hexval(s[2]) >= 0 &&
+          // check for embedded nul
+          (hexval(s[1]) > 0 || hexval(s[2]) > 0))
       {
 	*d++ = (hexval (s[1]) << 4) | (hexval (s[2]));
 	s += 2;
-- 
2.53.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.