From: Li Wang <li.w...@windriver.com>

[ CQID: WIND00393362 ]

Fix handling of empty header list entries in http_request_split_value,
fixing invalid read in valgrind (fixes #2413)

http://redmine.lighttpd.net/issues/2413
http://redmine.lighttpd.net/projects/lighttpd/repository/revisions/2830

Signed-off-by: Li Wang <li.w...@windriver.com>
Signed-off-by: Robert Yang <liezhi.y...@windriver.com>
Signed-off-by: Mark Hatle <mark.ha...@windriver.com>
---
 .../lighttpd-fixing-invalid-read-in-valgrind.patch | 33 ++++++++++++++++++++++
 meta/recipes-extended/lighttpd/lighttpd_1.4.30.bb  |  3 +-
 2 files changed, 35 insertions(+), 1 deletion(-)
 create mode 100644 
meta/recipes-extended/lighttpd/files/lighttpd-fixing-invalid-read-in-valgrind.patch

diff --git 
a/meta/recipes-extended/lighttpd/files/lighttpd-fixing-invalid-read-in-valgrind.patch
 
b/meta/recipes-extended/lighttpd/files/lighttpd-fixing-invalid-read-in-valgrind.patch
new file mode 100644
index 0000000..9c2e574
--- /dev/null
+++ 
b/meta/recipes-extended/lighttpd/files/lighttpd-fixing-invalid-read-in-valgrind.patch
@@ -0,0 +1,33 @@
+lighttpd: fixing invalid read in valgrind
+
+Fix handling of empty header list entries in http_request_split_value,
+fixing invalid read in valgrind (fixes #2413)
+
+http://redmine.lighttpd.net/issues/2413
+http://redmine.lighttpd.net/projects/lighttpd/repository/revisions/2830
+
+Signed-off-by: Li Wang <li.w...@windriver.com>
+---
+ src/request.c |    4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/src/request.c b/src/request.c
+index a48bf48..e76a98f 100644
+--- a/src/request.c
++++ b/src/request.c
+@@ -241,9 +241,11 @@ static int http_request_split_value(array *vals, buffer 
*b) {
+                       start = s;
+ 
+                       for (; *s != ',' && i < b->used - 1; i++, s++);
++                      if (start == s) break; /* empty fields are skipped */
+                       end = s - 1;
+ 
+-                      for (; (*end == ' ' || *end == '\t') && end > start; 
end--);
++                      for (; end > start && (*end == ' ' || *end == '\t'); 
end--);
++                      if (start == end) break; /* empty fields are skipped */
+ 
+                       if (NULL == (ds = (data_string 
*)array_get_unused_element(vals, TYPE_STRING))) {
+                               ds = data_string_init();
+-- 
+1.7.0.5
+
diff --git a/meta/recipes-extended/lighttpd/lighttpd_1.4.30.bb 
b/meta/recipes-extended/lighttpd/lighttpd_1.4.30.bb
index 3ae3867..c4008af 100644
--- a/meta/recipes-extended/lighttpd/lighttpd_1.4.30.bb
+++ b/meta/recipes-extended/lighttpd/lighttpd_1.4.30.bb
@@ -16,12 +16,13 @@ RDEPENDS_${PN} += " \
                lighttpd-module-staticfile \
 "
 
-PR = "r0"
+PR = "r1"
 
 SRC_URI = 
"http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.tar.bz2 \
         file://index.html.lighttpd \
         file://lighttpd.conf \
         file://lighttpd \
+        file://lighttpd-fixing-invalid-read-in-valgrind.patch \
 "
 
 SRC_URI[md5sum] = "63f9df52dcae0ab5689a95c99c54e48a"
-- 
1.8.1.2.545.g2f19ada


_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to