]> sjero.net Git - wget/commitdiff
Check stricter for supported URL scheme.
authorSteven Schubiger <stsc@member.fsf.org>
Tue, 2 Mar 2010 20:41:32 +0000 (21:41 +0100)
committerSteven Schubiger <stsc@member.fsf.org>
Tue, 2 Mar 2010 20:41:32 +0000 (21:41 +0100)
src/ChangeLog
src/retr.c
src/url.c
src/url.h

index 0ee92fdc33e855a84c21ac88d1fc24572d00556a..216a810288466f07b229cec4f5b9975c5a4e35ca 100644 (file)
@@ -1,3 +1,12 @@
+2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
+
+       * retr.c (retrieve_from_file): Improve checking for a URL
+       by invoking url_valid_scheme instead of url_has_scheme.
+
+       * url.c (url_valid_scheme): New function.
+
+       * url.h: Add declaration for url_valid_scheme.
+
 2010-03-02  Steven Schubiger  <stsc@member.fsf.org>
 
        * retr.c (retrieve_from_file): Free memory of input file.
index 55d5be788ce2430b28166c7515e39de5a1d57b8e..74b9dccb629a7833908ee4bda7298f93303e43c9 100644 (file)
@@ -899,7 +899,7 @@ retrieve_from_file (const char *file, bool html, int *count)
   set_uri_encoding (iri, opt.locale, true);
   set_content_encoding (iri, opt.locale);
 
-  if (url_has_scheme (url))
+  if (url_valid_scheme (url))
     {
       int dt,url_err;
       uerr_t status;
index d0b94a98acfca46f73a89216905d21e5db3093c5..ffc62a7edbd2fbe2c71ab03a6a4ebb8c9955ff3a 100644 (file)
--- a/src/url.c
+++ b/src/url.c
@@ -463,6 +463,13 @@ url_has_scheme (const char *url)
   return *p == ':';
 }
 
+bool
+url_valid_scheme (const char *url)
+{
+  enum url_scheme scheme = url_scheme (url);
+  return scheme != SCHEME_INVALID;
+}
+
 int
 scheme_default_port (enum url_scheme scheme)
 {
index 278b71dd05e28d064b533d27b9b10b73992fc565..0c0d87a38ead77d0555374d3ff1ad453db7f312f 100644 (file)
--- a/src/url.h
+++ b/src/url.h
@@ -94,6 +94,7 @@ void url_free (struct url *);
 
 enum url_scheme url_scheme (const char *);
 bool url_has_scheme (const char *);
+bool url_valid_scheme (const char *);
 int scheme_default_port (enum url_scheme);
 void scheme_disable (enum url_scheme);