Commit afc70c12 authored by Max Kellermann's avatar Max Kellermann

util/UriUtil: uri_get_suffix() fails if name begins with dot

A file called ".jpg" is not a JPEG file with an empty name; it is merely a hidden file.
parent d7f80eab
...@@ -32,7 +32,8 @@ const char * ...@@ -32,7 +32,8 @@ const char *
uri_get_suffix(const char *uri) uri_get_suffix(const char *uri)
{ {
const char *suffix = strrchr(uri, '.'); const char *suffix = strrchr(uri, '.');
if (suffix == nullptr) if (suffix == nullptr || suffix == uri ||
suffix[-1] == '/' || suffix[-1] == '\\')
return nullptr; return nullptr;
++suffix; ++suffix;
......
...@@ -29,6 +29,10 @@ public: ...@@ -29,6 +29,10 @@ public:
"jpg")); "jpg"));
CPPUNIT_ASSERT_EQUAL(0, strcmp(uri_get_suffix("/foo.png/bar.jpg"), CPPUNIT_ASSERT_EQUAL(0, strcmp(uri_get_suffix("/foo.png/bar.jpg"),
"jpg")); "jpg"));
CPPUNIT_ASSERT_EQUAL((const char *)nullptr,
uri_get_suffix(".jpg"));
CPPUNIT_ASSERT_EQUAL((const char *)nullptr,
uri_get_suffix("/foo/.jpg"));
} }
void TestRemoveAuth() { void TestRemoveAuth() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment