diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2004-04-02 15:16:15 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2004-04-02 15:16:15 +0000 |
commit | 361fcf507a3591c97890091f1e906a2ee9402462 (patch) | |
tree | 1b5c34c1da558c7c2791282b1aec509015e1a083 /riscos/url_protocol.c | |
parent | 20454498ed6dd9cb3361fc8cece0319d789dd62e (diff) | |
download | netsurf-361fcf507a3591c97890091f1e906a2ee9402462.tar.gz netsurf-361fcf507a3591c97890091f1e906a2ee9402462.tar.bz2 |
[project @ 2004-04-02 15:16:15 by jmb]
Update url checking to use fetch_can_fetch
Fix non null-termination of strings in URL broadcast messages.
svn path=/import/netsurf/; revision=701
Diffstat (limited to 'riscos/url_protocol.c')
-rw-r--r-- | riscos/url_protocol.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/riscos/url_protocol.c b/riscos/url_protocol.c index e1b32e691..b24e68401 100644 --- a/riscos/url_protocol.c +++ b/riscos/url_protocol.c @@ -131,20 +131,21 @@ bool ro_url_broadcast(char *url) { inetsuite_full_message_open_url_direct message; os_error *e; - int len = (strlen(url)>235) ? 235 : strlen(url); - - message.size = (((20+len-1)+3) & ~3); + int len = ((strlen(url)+1)>235) ? 235 : strlen(url)+1; + + message.size = ((20+len+3) & ~3); message.your_ref = 0; message.action = message_INET_SUITE_OPEN_URL; - + *message.url = 0; strncat(message.url, url, 235); - e = xwimp_send_message(wimp_USER_MESSAGE_RECORDED, + message.url[len-1] = 0; + e = xwimp_send_message(wimp_USER_MESSAGE_RECORDED, (wimp_message*)&message, 0); if (e) { return false; } - + return true; } @@ -153,30 +154,30 @@ bool ro_url_load(char *url) { char url_buf[512]; char *colon; os_error *e; - + colon = strchr(url, ':'); if (!colon) return false; - + strcpy(url_buf, "Alias$URLOpen_"); strncat(url_buf, url, colon-url); if (!getenv(url_buf)) return false; - + strcat(url_buf, " "); strncat(url_buf, url, 512-strlen(url_buf)-1); - + e = xwimp_start_task(url_buf+5, 0); - + if (e) { return false; } - + return true; } void ro_url_bounce(wimp_message *message) { inetsuite_message_open_url *url_message = (inetsuite_message_open_url*)&message->data; - + /* ant broadcast bounced -> try uri broadcast / load */ ro_uri_launch(url_message->url); } |