mirror of
https://git.yoctoproject.org/poky
synced 2026-04-02 17:02:21 +02:00
lighttpd: 1.4.35 -> 1.4.36
Upgrade lighttpd from 1.4.35 to 1.4.36. * Remove PR * Update context of 0001-mod_cgi-buffers-data-without-bound.patch (From OE-Core rev: 082e54077a88a6104226bc7a2068ea6c10ea1f99) Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -6,10 +6,14 @@ Subject: [PATCH] mod_cgi buffers data without bound so fix it
|
||||
Upstream-Status: Submitted [http://redmine.lighttpd.net/issues/1264]
|
||||
|
||||
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
|
||||
|
||||
Update context for 1.4.36.
|
||||
|
||||
Signed-off-by: Kai Kang <kai.kang@windriver.com>
|
||||
---
|
||||
doc/config/lighttpd.conf | 8 ++
|
||||
src/mod_cgi.c | 188 ++++++++++++++++++++++++++++++++++++++++++++---
|
||||
2 files changed, 186 insertions(+), 10 deletions(-)
|
||||
2 files changed, 187 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/doc/config/lighttpd.conf b/doc/config/lighttpd.conf
|
||||
index 60b0ae1..9c101a7 100644
|
||||
@@ -31,7 +35,7 @@ index 60b0ae1..9c101a7 100644
|
||||
#######################################################################
|
||||
##
|
||||
diff --git a/src/mod_cgi.c b/src/mod_cgi.c
|
||||
index 734ecee..c51f43c 100644
|
||||
index 01b1877..7c67eb5 100644
|
||||
--- a/src/mod_cgi.c
|
||||
+++ b/src/mod_cgi.c
|
||||
@@ -38,6 +38,10 @@
|
||||
@@ -124,7 +128,7 @@ index 734ecee..c51f43c 100644
|
||||
free(hctx);
|
||||
}
|
||||
|
||||
@@ -152,6 +186,8 @@ SETDEFAULTS_FUNC(mod_fastcgi_set_defaults) {
|
||||
@@ -154,6 +188,8 @@ SETDEFAULTS_FUNC(mod_fastcgi_set_defaults) {
|
||||
config_values_t cv[] = {
|
||||
{ "cgi.assign", NULL, T_CONFIG_ARRAY, T_CONFIG_SCOPE_CONNECTION }, /* 0 */
|
||||
{ "cgi.execute-x-only", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 1 */
|
||||
@@ -133,7 +137,7 @@ index 734ecee..c51f43c 100644
|
||||
{ NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET}
|
||||
};
|
||||
|
||||
@@ -167,9 +203,13 @@ SETDEFAULTS_FUNC(mod_fastcgi_set_defaults) {
|
||||
@@ -169,9 +205,13 @@ SETDEFAULTS_FUNC(mod_fastcgi_set_defaults) {
|
||||
|
||||
s->cgi = array_init();
|
||||
s->execute_x_only = 0;
|
||||
@@ -147,7 +151,7 @@ index 734ecee..c51f43c 100644
|
||||
|
||||
p->config_storage[i] = s;
|
||||
|
||||
@@ -182,6 +222,51 @@ SETDEFAULTS_FUNC(mod_fastcgi_set_defaults) {
|
||||
@@ -184,6 +224,51 @@ SETDEFAULTS_FUNC(mod_fastcgi_set_defaults) {
|
||||
}
|
||||
|
||||
|
||||
@@ -199,7 +203,7 @@ index 734ecee..c51f43c 100644
|
||||
static int cgi_pid_add(server *srv, plugin_data *p, pid_t pid) {
|
||||
int m = -1;
|
||||
size_t i;
|
||||
@@ -228,6 +313,39 @@ static int cgi_pid_del(server *srv, plugin_data *p, pid_t pid) {
|
||||
@@ -230,6 +315,39 @@ static int cgi_pid_del(server *srv, plugin_data *p, pid_t pid) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -239,10 +243,10 @@ index 734ecee..c51f43c 100644
|
||||
static int cgi_response_parse(server *srv, connection *con, plugin_data *p, buffer *in) {
|
||||
char *ns;
|
||||
const char *s;
|
||||
@@ -378,6 +496,13 @@ static int cgi_demux_response(server *srv, handler_ctx *hctx) {
|
||||
@@ -380,6 +498,14 @@ static int cgi_demux_response(server *srv, handler_ctx *hctx) {
|
||||
|
||||
buffer_commit(hctx->response, n);
|
||||
|
||||
hctx->response->ptr[n] = '\0';
|
||||
hctx->response->used = n+1;
|
||||
+#ifdef DEBUG
|
||||
+ sprintf(msgbuf, "n=%d, bytes_out=%llu, bytes_in=%llu", n,
|
||||
+ (unsigned long long)con->write_queue->bytes_out,
|
||||
@@ -250,13 +254,14 @@ index 734ecee..c51f43c 100644
|
||||
+ log_error_write(srv, __FILE__, __LINE__, "ss",
|
||||
+ "(debug) read,", msgbuf);
|
||||
+#endif
|
||||
|
||||
+
|
||||
/* split header from body */
|
||||
|
||||
@@ -502,8 +627,20 @@ static int cgi_demux_response(server *srv, handler_ctx *hctx) {
|
||||
if (con->file_started == 0) {
|
||||
@@ -503,7 +629,20 @@ static int cgi_demux_response(server *srv, handler_ctx *hctx) {
|
||||
}
|
||||
} else {
|
||||
http_chunk_append_mem(srv, con, hctx->response->ptr, hctx->response->used);
|
||||
http_chunk_append_buffer(srv, con, hctx->response);
|
||||
+#ifdef DEBUG
|
||||
+ sprintf(msgbuf, "n=%d, bytes_out=%llu, bytes_in=%llu, limit=%llu", n,
|
||||
+ (unsigned long long)con->write_queue->bytes_out,
|
||||
@@ -266,16 +271,15 @@ index 734ecee..c51f43c 100644
|
||||
+ "ss", "(debug) append,", msgbuf);
|
||||
+#endif
|
||||
joblist_append(srv, con);
|
||||
- }
|
||||
+
|
||||
+ cgi_throttling_control(srv, hctx);
|
||||
+ if (hctx->throttling) {
|
||||
+ return FDEVENT_HANDLED_NOT_FINISHED;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
#if 0
|
||||
log_error_write(srv, __FILE__, __LINE__, "ddss", con->fd, hctx->fd, connection_get_state(con->state), b->ptr);
|
||||
@@ -552,8 +689,9 @@ static handler_t cgi_connection_close(server *srv, handler_ctx *hctx) {
|
||||
@@ -553,8 +692,9 @@ static handler_t cgi_connection_close(server *srv, handler_ctx *hctx) {
|
||||
con->plugin_ctx[p->id] = NULL;
|
||||
|
||||
/* is this a good idea ? */
|
||||
@@ -287,7 +291,7 @@ index 734ecee..c51f43c 100644
|
||||
/* if waitpid hasn't been called by response.c yet, do it here */
|
||||
if (pid) {
|
||||
/* check if the CGI-script is already gone */
|
||||
@@ -1156,7 +1294,8 @@ static int cgi_create_env(server *srv, connection *con, plugin_data *p, buffer *
|
||||
@@ -1105,7 +1245,8 @@ static int cgi_create_env(server *srv, connection *con, plugin_data *p, buffer *
|
||||
con->mode = p->id;
|
||||
buffer_reset(con->physical.path);
|
||||
|
||||
@@ -297,7 +301,7 @@ index 734ecee..c51f43c 100644
|
||||
|
||||
hctx->remote_conn = con;
|
||||
hctx->plugin_data = p;
|
||||
@@ -1165,6 +1304,11 @@ static int cgi_create_env(server *srv, connection *con, plugin_data *p, buffer *
|
||||
@@ -1114,6 +1255,11 @@ static int cgi_create_env(server *srv, connection *con, plugin_data *p, buffer *
|
||||
hctx->fde_ndx = -1;
|
||||
|
||||
con->plugin_ctx[p->id] = hctx;
|
||||
@@ -309,7 +313,7 @@ index 734ecee..c51f43c 100644
|
||||
|
||||
fdevent_register(srv->ev, hctx->fd, cgi_handle_fdevent, hctx);
|
||||
fdevent_event_set(srv->ev, &(hctx->fde_ndx), hctx->fd, FDEVENT_IN);
|
||||
@@ -1179,7 +1323,8 @@ static int cgi_create_env(server *srv, connection *con, plugin_data *p, buffer *
|
||||
@@ -1128,7 +1274,8 @@ static int cgi_create_env(server *srv, connection *con, plugin_data *p, buffer *
|
||||
|
||||
close(hctx->fd);
|
||||
|
||||
@@ -319,7 +323,7 @@ index 734ecee..c51f43c 100644
|
||||
|
||||
con->plugin_ctx[p->id] = NULL;
|
||||
|
||||
@@ -1204,6 +1349,8 @@ static int mod_cgi_patch_connection(server *srv, connection *con, plugin_data *p
|
||||
@@ -1153,6 +1300,8 @@ static int mod_cgi_patch_connection(server *srv, connection *con, plugin_data *p
|
||||
|
||||
PATCH(cgi);
|
||||
PATCH(execute_x_only);
|
||||
@@ -328,7 +332,7 @@ index 734ecee..c51f43c 100644
|
||||
|
||||
/* skip the first, the global context */
|
||||
for (i = 1; i < srv->config_context->used; i++) {
|
||||
@@ -1221,6 +1368,10 @@ static int mod_cgi_patch_connection(server *srv, connection *con, plugin_data *p
|
||||
@@ -1170,6 +1319,10 @@ static int mod_cgi_patch_connection(server *srv, connection *con, plugin_data *p
|
||||
PATCH(cgi);
|
||||
} else if (buffer_is_equal_string(du->key, CONST_STR_LEN("cgi.execute-x-only"))) {
|
||||
PATCH(execute_x_only);
|
||||
@@ -339,7 +343,7 @@ index 734ecee..c51f43c 100644
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1273,6 +1424,21 @@ URIHANDLER_FUNC(cgi_is_handled) {
|
||||
@@ -1222,6 +1375,21 @@ URIHANDLER_FUNC(cgi_is_handled) {
|
||||
TRIGGER_FUNC(cgi_trigger) {
|
||||
plugin_data *p = p_d;
|
||||
size_t ndx;
|
||||
@@ -361,7 +365,7 @@ index 734ecee..c51f43c 100644
|
||||
/* the trigger handle only cares about lonely PID which we have to wait for */
|
||||
#ifndef __WIN32
|
||||
|
||||
@@ -1381,7 +1547,8 @@ SUBREQUEST_FUNC(mod_cgi_handle_subrequest) {
|
||||
@@ -1330,7 +1498,8 @@ SUBREQUEST_FUNC(mod_cgi_handle_subrequest) {
|
||||
log_error_write(srv, __FILE__, __LINE__, "sds", "cgi close failed ", hctx->fd, strerror(errno));
|
||||
}
|
||||
|
||||
@@ -371,7 +375,7 @@ index 734ecee..c51f43c 100644
|
||||
|
||||
con->plugin_ctx[p->id] = NULL;
|
||||
|
||||
@@ -1413,7 +1580,8 @@ SUBREQUEST_FUNC(mod_cgi_handle_subrequest) {
|
||||
@@ -1362,7 +1531,8 @@ SUBREQUEST_FUNC(mod_cgi_handle_subrequest) {
|
||||
log_error_write(srv, __FILE__, __LINE__, "sds", "cgi close failed ", hctx->fd, strerror(errno));
|
||||
}
|
||||
|
||||
@@ -381,6 +385,3 @@ index 734ecee..c51f43c 100644
|
||||
|
||||
con->plugin_ctx[p->id] = NULL;
|
||||
return HANDLER_FINISHED;
|
||||
--
|
||||
1.8.4.2
|
||||
|
||||
|
||||
@@ -5,8 +5,6 @@ BUGTRACKER = "http://redmine.lighttpd.net/projects/lighttpd/issues"
|
||||
LICENSE = "BSD"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579"
|
||||
|
||||
PR = "r1"
|
||||
|
||||
SECTION = "net"
|
||||
DEPENDS = "zlib libpcre"
|
||||
RDEPENDS_${PN} += " \
|
||||
@@ -17,8 +15,7 @@ RDEPENDS_${PN} += " \
|
||||
lighttpd-module-staticfile \
|
||||
"
|
||||
|
||||
|
||||
SRC_URI = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.tar.bz2 \
|
||||
SRC_URI = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.tar.xz \
|
||||
file://index.html.lighttpd \
|
||||
file://lighttpd.conf \
|
||||
file://lighttpd \
|
||||
@@ -27,8 +24,8 @@ SRC_URI = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.t
|
||||
file://0001-mod_cgi-buffers-data-without-bound.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "f7a88130ee9984b421ad8aa80629750a"
|
||||
SRC_URI[sha256sum] = "4a71c1f6d8af41ed894b507720c4c17184dc320590013881d5170ca7f15c5bf7"
|
||||
SRC_URI[md5sum] = "1843daffcb018aa528f6d15d43544654"
|
||||
SRC_URI[sha256sum] = "897ab6b1cc7bd51671f8af759e7846245fbbca0685c30017e93a5882a9ac1a53"
|
||||
|
||||
PACKAGECONFIG ??= "openssl"
|
||||
PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl"
|
||||
Reference in New Issue
Block a user