aboutsummaryrefslogtreecommitdiff
path: root/devel/libsoup
diff options
context:
space:
mode:
authorKoop Mast <kwm@FreeBSD.org>2011-07-28 19:20:07 +0000
committerKoop Mast <kwm@FreeBSD.org>2011-07-28 19:20:07 +0000
commitddf70a3e70da9a133e3126d889bbb9bbe5496bda (patch)
tree88db1b4d99e817da4ece0c6915625c60e732e89a /devel/libsoup
parent53ec1b85283379e9b67107a22b984c63b0de37f7 (diff)
downloadports-ddf70a3e70da9a133e3126d889bbb9bbe5496bda.tar.gz
ports-ddf70a3e70da9a133e3126d889bbb9bbe5496bda.zip
Notes
Diffstat (limited to 'devel/libsoup')
-rw-r--r--devel/libsoup/Makefile2
-rw-r--r--devel/libsoup/files/patch-libsoup_soup-server.c34
2 files changed, 35 insertions, 1 deletions
diff --git a/devel/libsoup/Makefile b/devel/libsoup/Makefile
index 7053e556545b..4e47a12161c8 100644
--- a/devel/libsoup/Makefile
+++ b/devel/libsoup/Makefile
@@ -8,7 +8,7 @@
PORTNAME= libsoup
PORTVERSION= 2.32.2
-PORTREVISION?= 2
+PORTREVISION?= 3
CATEGORIES= devel gnome
MASTER_SITES= GNOME
DIST_SUBDIR= gnome2
diff --git a/devel/libsoup/files/patch-libsoup_soup-server.c b/devel/libsoup/files/patch-libsoup_soup-server.c
new file mode 100644
index 000000000000..93116ad065a3
--- /dev/null
+++ b/devel/libsoup/files/patch-libsoup_soup-server.c
@@ -0,0 +1,34 @@
+From 51eb8798c3965b49f3010db82009d36429f28514 Mon Sep 17 00:00:00 2001
+From: Dan Winship <danw@gnome.org>
+Date: Wed, 29 Jun 2011 14:04:06 +0000
+Subject: SoupServer: fix to not allow smuggling ".." into path
+
+When SoupServer:raw-paths was set (the default), it was possible to
+sneak ".." segments into the path passed to the SoupServerHandler,
+which could then end up tricking some handlers into retrieving
+arbitrary files from the filesystem. Fix that.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=653258
+---
+diff --git a/libsoup/soup-server.c b/libsoup/soup-server.c
+index d56efd1..7225337 100644
+--- libsoup/soup-server.c
++++ libsoup/soup-server.c
+@@ -779,6 +779,15 @@ got_headers (SoupMessage *req, SoupClientContext *client)
+
+ uri = soup_message_get_uri (req);
+ decoded_path = soup_uri_decode (uri->path);
++
++ if (strstr (decoded_path, "/../") ||
++ g_str_has_suffix (decoded_path, "/..")) {
++ /* Introducing new ".." segments is not allowed */
++ g_free (decoded_path);
++ soup_message_set_status (req, SOUP_STATUS_BAD_REQUEST);
++ return;
++ }
++
+ soup_uri_set_path (uri, decoded_path);
+ g_free (decoded_path);
+ }
+--
+cgit v0.9