summaryrefslogtreecommitdiff
path: root/lisp/url
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2007-04-01 15:38:50 +0000
committerChong Yidong <cyd@stupidchicken.com>2007-04-01 15:38:50 +0000
commitb4ddc815b77785e93fd6a0654888da2ea63d647b (patch)
treede98e10851e2eb436942bb6229832e738e2e3d7f /lisp/url
parentf3e30bd0ec2a5358b74b51f2a1eac7c7ae7ad438 (diff)
downloademacs-b4ddc815b77785e93fd6a0654888da2ea63d647b.tar.gz
(url-cookie-retrieve, url-cookie-host-can-set-p): Deal with wildcard
dots in domain values.
Diffstat (limited to 'lisp/url')
-rw-r--r--lisp/url/url-cookie.el18
1 files changed, 16 insertions, 2 deletions
diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el
index cfe4f8ecf71..8d729c92369 100644
--- a/lisp/url/url-cookie.el
+++ b/lisp/url/url-cookie.el
@@ -272,7 +272,15 @@ telling Microsoft that."
storage (cdr storage)
cookies (cdr cur))
(if (and (car cur)
- (string-match (concat "^.*" (regexp-quote (car cur)) "$") host))
+ (string-match
+ (concat "^.*"
+ (regexp-quote
+ ;; Remove the dot from wildcard domains
+ ;; before matching.
+ (if (eq ?. (aref (car cur) 0))
+ (substring (car cur) 1)
+ (car cur)))
+ "$") host))
;; The domains match - a possible hit!
(while cookies
(setq cur (car cookies)
@@ -344,7 +352,13 @@ telling Microsoft that."
((>= numdots mindots) ; We have enough dots in domain name
;; Need to check and make sure the host is actually _in_ the
;; domain it wants to set a cookie for though.
- (string-match (concat (regexp-quote domain) "$") host))
+ (string-match (concat (regexp-quote
+ ;; Remove the dot from wildcard domains
+ ;; before matching.
+ (if (eq ?. (aref domain 0))
+ (substring domain 1)
+ domain))
+ "$") host))
(t
nil))))