diff options
author | corvid <corvid@lavabit.com> | 2011-11-17 02:30:58 +0000 |
---|---|---|
committer | corvid <corvid@lavabit.com> | 2011-11-17 02:30:58 +0000 |
commit | 0737f8cda8761178997948a163ee10cebe3f2ce1 (patch) | |
tree | 8b3a08816c14737e192b209954cd7963cd6ae9ef | |
parent | e4073e88c1edb556eb2b3fb06cec0639c3a3d80c (diff) |
never treat URI schemes case-sensitively
-rw-r--r-- | dpi/bookmarks.c | 21 | ||||
-rw-r--r-- | dpi/file.c | 5 | ||||
-rw-r--r-- | dpi/vsource.c | 3 | ||||
-rw-r--r-- | src/capi.c | 2 | ||||
-rw-r--r-- | src/dillo.cc | 3 | ||||
-rw-r--r-- | src/menu.cc | 3 | ||||
-rw-r--r-- | src/nav.c | 3 |
7 files changed, 23 insertions, 17 deletions
diff --git a/dpi/bookmarks.c b/dpi/bookmarks.c index 6932d2f0..32dc424f 100644 --- a/dpi/bookmarks.c +++ b/dpi/bookmarks.c @@ -1626,16 +1626,17 @@ static int Bmsrv_parse_token(Dsh *sh, char *Buf) dFree(cmd); url = a_Dpip_get_attr_l(Buf, BufSize, "url"); - if (strcmp(url, "dpi:/bm/modify") == 0) { - st = Bmsrv_send_modify_answer(sh, url); - dFree(url); - return st; - - } else if (strncmp(url, "dpi:/bm/modify?", 15) == 0) { - /* process request */ - st = Bmsrv_process_modify_request(sh, url); - dFree(url); - return st; + if (dStrnAsciiCasecmp(url, "dpi:", 4) == 0) { + if (strcmp(url+4, "/bm/modify") == 0) { + st = Bmsrv_send_modify_answer(sh, url); + dFree(url); + return st; + } else if (strncmp(url+4, "/bm/modify?", 11) == 0) { + /* process request */ + st = Bmsrv_process_modify_request(sh, url); + dFree(url); + return st; + } } @@ -800,7 +800,7 @@ static char *File_normalize_path(const char *orig) dReturn_val_if (orig == NULL, ret); /* Make sure the string starts with "file:/" */ - if (strncmp(str, "file:/", 5) != 0) + if (dStrnAsciiCasecmp(str, "file:/", 5) != 0) return ret; str += 5; @@ -942,7 +942,8 @@ static void File_serve_client(void *data, int f_write) DPIBYE = 1; MSG("(pid %d): Got DpiBye.\n", (int)getpid()); client->flags |= FILE_DONE; - } else if (url && strcmp(url, "dpi:/file/toggle") == 0) { + } else if (url && dStrnAsciiCasecmp(url, "dpi:", 4) == 0 && + strcmp(url+4, "/file/toggle") == 0) { File_toggle_html_style(client); } else if (path) { File_get(client, path, url); diff --git a/dpi/vsource.c b/dpi/vsource.c index 113aaa99..adf08a83 100644 --- a/dpi/vsource.c +++ b/dpi/vsource.c @@ -101,7 +101,8 @@ void send_html_text(Dsh *sh, const char *url, int data_size) int bytes_read = 0, old_line = 0, line = 1; char *p, *q, *src_str, line_str[128]; - if (strncmp(url, "dpi:/vsource/:", 14) == 0) + if (dStrnAsciiCasecmp(url, "dpi:", 4) == 0 && + strncmp(url+4, "/vsource/:", 10) == 0) url += 14; /* Send HTTP header for plain text MIME type */ @@ -233,7 +233,7 @@ int a_Capi_dpi_verify_request(BrowserWindow *bw, DilloUrl *url) if (!(URL_FLAGS(url) & (URL_Post + URL_Get))) { allow = TRUE; } else if (!(URL_FLAGS(url) & URL_Post) && - strncmp(URL_STR(url), "dpi:/vsource/", 13) == 0) { + strncmp(URL_PATH(url), "/vsource/", 9) == 0) { allow = TRUE; } else { /* only allow GET&POST dpi-requests from dpi-generated urls */ diff --git a/src/dillo.cc b/src/dillo.cc index b05cb16a..ff450fe5 100644 --- a/src/dillo.cc +++ b/src/dillo.cc @@ -410,7 +410,8 @@ int main(int argc, char **argv) if (idx == argc) { /* No URLs/files on cmdline. Send startup screen */ - if (strcmp(URL_STR(prefs.start_page), "about:blank") == 0) + if (dStrAsciiCasecmp(URL_SCHEME(prefs.start_page), "about") == 0 && + strcmp(URL_PATH(prefs.start_page), "blank") == 0) a_UIcmd_open_url(bw, NULL); else a_UIcmd_open_url(bw, prefs.start_page); diff --git a/src/menu.cc b/src/menu.cc index 3aa30faa..fe8ff139 100644 --- a/src/menu.cc +++ b/src/menu.cc @@ -327,7 +327,8 @@ void a_Menu_page_popup(BrowserWindow *bw, const DilloUrl *url, has_bugs == TRUE ? pm[1].activate() : pm[1].deactivate(); - if (strncmp(URL_STR(url), "dpi:/vsource/", 13) == 0) + if (dStrAsciiCasecmp(URL_SCHEME(url), "dpi") == 0 && + strncmp(URL_PATH(url), "/vsource/", 9) == 0) pm[0].deactivate(); else pm[0].activate(); @@ -481,7 +481,8 @@ static void Nav_reload_callback(void *data) a_Nav_cancel_expect(bw); if (a_Nav_stack_size(bw)) { h_url = a_History_get_url(NAV_TOP_UIDX(bw)); - if (strncmp(URL_STR(h_url), "dpi:/vsource/", 13) == 0) { + if (dStrAsciiCasecmp(URL_SCHEME(h_url), "dpi") == 0 && + strncmp(URL_PATH(h_url), "/vsource/", 9) == 0) { /* allow reload for view source dpi */ confirmed = 1; } else if (URL_FLAGS(h_url) & URL_Post) { |