]> granicus.if.org Git - curl/commit
tool_doswin: Improve sanitization processing
authorJay Satiro <raysatiro@yahoo.com>
Fri, 5 Feb 2016 06:44:27 +0000 (01:44 -0500)
committerJay Satiro <raysatiro@yahoo.com>
Fri, 5 Feb 2016 06:44:27 +0000 (01:44 -0500)
commit4520534e6d5576f0647d03d6c573c5d7d45ccf6e
tree5871d4b60f9b4fab60b22287a065b5b0deac1815
parentd49881cb19971c058eca4a41317b6487bf939e5c
tool_doswin: Improve sanitization processing

- Add unit test 1604 to test the sanitize_file_name function.

- Use -DCURL_STATICLIB when building libcurltool for unit testing.

- Better detection of reserved DOS device names.

- New flags to modify sanitize behavior:

SANITIZE_ALLOW_COLONS: Allow colons
SANITIZE_ALLOW_PATH: Allow path separators and colons
SANITIZE_ALLOW_RESERVED: Allow reserved device names
SANITIZE_ALLOW_TRUNCATE: Allow truncating a long filename

- Restore sanitization of banned characters from user-specified outfile.

Prior to this commit sanitization of a user-specified outfile was
temporarily disabled in 2b6dadc because there was no way to allow path
separators and colons through while replacing other banned characters.
Now in such a case we call the sanitize function with
SANITIZE_ALLOW_PATH which allows path separators and colons to pass
through.

Closes https://github.com/curl/curl/issues/624
Reported-by: Octavio Schroeder
src/Makefile.am
src/tool_cb_hdr.c
src/tool_doswin.c
src/tool_doswin.h
src/tool_operate.c
src/tool_operhlp.c
src/tool_urlglob.c
tests/data/test1604 [new file with mode: 0644]
tests/unit/Makefile.inc
tests/unit/unit1604.c [new file with mode: 0644]