[DF180327-00881] Check length of file extension after deriving it 86/174486/1
authorSeonah Moon <seonah1.moon@samsung.com>
Mon, 2 Apr 2018 10:05:15 +0000 (19:05 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Mon, 2 Apr 2018 10:05:22 +0000 (19:05 +0900)
If URL is http://xxx.com/sample.txt?version=123, file extension is removed.
It's becuase txt?version=123 is considered as file extension and its lenth is maximum length or more.

Change-Id: I5b0e9436811f80fc050a2d1061b8015b88b3b0de

agent/download-agent-mime-util.c

index 23ba4f5..71aaef2 100755 (executable)
@@ -213,16 +213,17 @@ da_bool_t da_get_extension_name_from_url(char *url, char **ext)
                        char *q = DA_NULL;
                        buff++;
 
-                       /* check extention length refer to https://en.wikipedia.org/wiki/List_of_filename_extensions */
-                       if (strlen(buff) > MAX_EXT_NAME_LEN)
-                               return ret;
-
                        /* check to exist "?" after extension name */
                        q = strrchr(buff, '?');
                        if (q)
                                buf_len = strlen(buff) - strlen(q);
                        else
                                buf_len = strlen(buff);
+
+                       /* check extention length refer to https://en.wikipedia.org/wiki/List_of_filename_extensions */
+                       if (buf_len > MAX_EXT_NAME_LEN)
+                               return ret;
+
                        *ext = (char*) calloc(1, buf_len + 1) ;
 
                        if (DA_NULL == *ext) {