summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-extended/lighttpd/lighttpd/0001-mod_cgi-buffers-data-without-bound.patch55
-rw-r--r--meta/recipes-extended/lighttpd/lighttpd_1.4.36.bb (renamed from meta/recipes-extended/lighttpd/lighttpd_1.4.35.bb)9
2 files changed, 31 insertions, 33 deletions
diff --git a/meta/recipes-extended/lighttpd/lighttpd/0001-mod_cgi-buffers-data-without-bound.patch b/meta/recipes-extended/lighttpd/lighttpd/0001-mod_cgi-buffers-data-without-bound.patch
index b1678e6ee2..a9df1744a7 100644
--- a/meta/recipes-extended/lighttpd/lighttpd/0001-mod_cgi-buffers-data-without-bound.patch
+++ b/meta/recipes-extended/lighttpd/lighttpd/0001-mod_cgi-buffers-data-without-bound.patch
@@ -6,10 +6,14 @@ Subject: [PATCH] mod_cgi buffers data without bound so fix it
6Upstream-Status: Submitted [http://redmine.lighttpd.net/issues/1264] 6Upstream-Status: Submitted [http://redmine.lighttpd.net/issues/1264]
7 7
8Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> 8Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
9
10Update context for 1.4.36.
11
12Signed-off-by: Kai Kang <kai.kang@windriver.com>
9--- 13---
10 doc/config/lighttpd.conf | 8 ++ 14 doc/config/lighttpd.conf | 8 ++
11 src/mod_cgi.c | 188 ++++++++++++++++++++++++++++++++++++++++++++--- 15 src/mod_cgi.c | 188 ++++++++++++++++++++++++++++++++++++++++++++---
12 2 files changed, 186 insertions(+), 10 deletions(-) 16 2 files changed, 187 insertions(+), 9 deletions(-)
13 17
14diff --git a/doc/config/lighttpd.conf b/doc/config/lighttpd.conf 18diff --git a/doc/config/lighttpd.conf b/doc/config/lighttpd.conf
15index 60b0ae1..9c101a7 100644 19index 60b0ae1..9c101a7 100644
@@ -31,7 +35,7 @@ index 60b0ae1..9c101a7 100644
31 ####################################################################### 35 #######################################################################
32 ## 36 ##
33diff --git a/src/mod_cgi.c b/src/mod_cgi.c 37diff --git a/src/mod_cgi.c b/src/mod_cgi.c
34index 734ecee..c51f43c 100644 38index 01b1877..7c67eb5 100644
35--- a/src/mod_cgi.c 39--- a/src/mod_cgi.c
36+++ b/src/mod_cgi.c 40+++ b/src/mod_cgi.c
37@@ -38,6 +38,10 @@ 41@@ -38,6 +38,10 @@
@@ -124,7 +128,7 @@ index 734ecee..c51f43c 100644
124 free(hctx); 128 free(hctx);
125 } 129 }
126 130
127@@ -152,6 +186,8 @@ SETDEFAULTS_FUNC(mod_fastcgi_set_defaults) { 131@@ -154,6 +188,8 @@ SETDEFAULTS_FUNC(mod_fastcgi_set_defaults) {
128 config_values_t cv[] = { 132 config_values_t cv[] = {
129 { "cgi.assign", NULL, T_CONFIG_ARRAY, T_CONFIG_SCOPE_CONNECTION }, /* 0 */ 133 { "cgi.assign", NULL, T_CONFIG_ARRAY, T_CONFIG_SCOPE_CONNECTION }, /* 0 */
130 { "cgi.execute-x-only", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 1 */ 134 { "cgi.execute-x-only", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 1 */
@@ -133,7 +137,7 @@ index 734ecee..c51f43c 100644
133 { NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET} 137 { NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET}
134 }; 138 };
135 139
136@@ -167,9 +203,13 @@ SETDEFAULTS_FUNC(mod_fastcgi_set_defaults) { 140@@ -169,9 +205,13 @@ SETDEFAULTS_FUNC(mod_fastcgi_set_defaults) {
137 141
138 s->cgi = array_init(); 142 s->cgi = array_init();
139 s->execute_x_only = 0; 143 s->execute_x_only = 0;
@@ -147,7 +151,7 @@ index 734ecee..c51f43c 100644
147 151
148 p->config_storage[i] = s; 152 p->config_storage[i] = s;
149 153
150@@ -182,6 +222,51 @@ SETDEFAULTS_FUNC(mod_fastcgi_set_defaults) { 154@@ -184,6 +224,51 @@ SETDEFAULTS_FUNC(mod_fastcgi_set_defaults) {
151 } 155 }
152 156
153 157
@@ -199,7 +203,7 @@ index 734ecee..c51f43c 100644
199 static int cgi_pid_add(server *srv, plugin_data *p, pid_t pid) { 203 static int cgi_pid_add(server *srv, plugin_data *p, pid_t pid) {
200 int m = -1; 204 int m = -1;
201 size_t i; 205 size_t i;
202@@ -228,6 +313,39 @@ static int cgi_pid_del(server *srv, plugin_data *p, pid_t pid) { 206@@ -230,6 +315,39 @@ static int cgi_pid_del(server *srv, plugin_data *p, pid_t pid) {
203 return 0; 207 return 0;
204 } 208 }
205 209
@@ -239,10 +243,10 @@ index 734ecee..c51f43c 100644
239 static int cgi_response_parse(server *srv, connection *con, plugin_data *p, buffer *in) { 243 static int cgi_response_parse(server *srv, connection *con, plugin_data *p, buffer *in) {
240 char *ns; 244 char *ns;
241 const char *s; 245 const char *s;
242@@ -378,6 +496,13 @@ static int cgi_demux_response(server *srv, handler_ctx *hctx) { 246@@ -380,6 +498,14 @@ static int cgi_demux_response(server *srv, handler_ctx *hctx) {
247
248 buffer_commit(hctx->response, n);
243 249
244 hctx->response->ptr[n] = '\0';
245 hctx->response->used = n+1;
246+#ifdef DEBUG 250+#ifdef DEBUG
247+ sprintf(msgbuf, "n=%d, bytes_out=%llu, bytes_in=%llu", n, 251+ sprintf(msgbuf, "n=%d, bytes_out=%llu, bytes_in=%llu", n,
248+ (unsigned long long)con->write_queue->bytes_out, 252+ (unsigned long long)con->write_queue->bytes_out,
@@ -250,13 +254,14 @@ index 734ecee..c51f43c 100644
250+ log_error_write(srv, __FILE__, __LINE__, "ss", 254+ log_error_write(srv, __FILE__, __LINE__, "ss",
251+ "(debug) read,", msgbuf); 255+ "(debug) read,", msgbuf);
252+#endif 256+#endif
253 257+
254 /* split header from body */ 258 /* split header from body */
255 259
256@@ -502,8 +627,20 @@ static int cgi_demux_response(server *srv, handler_ctx *hctx) { 260 if (con->file_started == 0) {
261@@ -503,7 +629,20 @@ static int cgi_demux_response(server *srv, handler_ctx *hctx) {
257 } 262 }
258 } else { 263 } else {
259 http_chunk_append_mem(srv, con, hctx->response->ptr, hctx->response->used); 264 http_chunk_append_buffer(srv, con, hctx->response);
260+#ifdef DEBUG 265+#ifdef DEBUG
261+ sprintf(msgbuf, "n=%d, bytes_out=%llu, bytes_in=%llu, limit=%llu", n, 266+ sprintf(msgbuf, "n=%d, bytes_out=%llu, bytes_in=%llu, limit=%llu", n,
262+ (unsigned long long)con->write_queue->bytes_out, 267+ (unsigned long long)con->write_queue->bytes_out,
@@ -266,16 +271,15 @@ index 734ecee..c51f43c 100644
266+ "ss", "(debug) append,", msgbuf); 271+ "ss", "(debug) append,", msgbuf);
267+#endif 272+#endif
268 joblist_append(srv, con); 273 joblist_append(srv, con);
269- } 274+
270+ cgi_throttling_control(srv, hctx); 275+ cgi_throttling_control(srv, hctx);
271+ if (hctx->throttling) { 276+ if (hctx->throttling) {
272+ return FDEVENT_HANDLED_NOT_FINISHED; 277+ return FDEVENT_HANDLED_NOT_FINISHED;
273+ } 278+ }
274+ } 279 }
275 280
276 #if 0 281 #if 0
277 log_error_write(srv, __FILE__, __LINE__, "ddss", con->fd, hctx->fd, connection_get_state(con->state), b->ptr); 282@@ -553,8 +692,9 @@ static handler_t cgi_connection_close(server *srv, handler_ctx *hctx) {
278@@ -552,8 +689,9 @@ static handler_t cgi_connection_close(server *srv, handler_ctx *hctx) {
279 con->plugin_ctx[p->id] = NULL; 283 con->plugin_ctx[p->id] = NULL;
280 284
281 /* is this a good idea ? */ 285 /* is this a good idea ? */
@@ -287,7 +291,7 @@ index 734ecee..c51f43c 100644
287 /* if waitpid hasn't been called by response.c yet, do it here */ 291 /* if waitpid hasn't been called by response.c yet, do it here */
288 if (pid) { 292 if (pid) {
289 /* check if the CGI-script is already gone */ 293 /* check if the CGI-script is already gone */
290@@ -1156,7 +1294,8 @@ static int cgi_create_env(server *srv, connection *con, plugin_data *p, buffer * 294@@ -1105,7 +1245,8 @@ static int cgi_create_env(server *srv, connection *con, plugin_data *p, buffer *
291 con->mode = p->id; 295 con->mode = p->id;
292 buffer_reset(con->physical.path); 296 buffer_reset(con->physical.path);
293 297
@@ -297,7 +301,7 @@ index 734ecee..c51f43c 100644
297 301
298 hctx->remote_conn = con; 302 hctx->remote_conn = con;
299 hctx->plugin_data = p; 303 hctx->plugin_data = p;
300@@ -1165,6 +1304,11 @@ static int cgi_create_env(server *srv, connection *con, plugin_data *p, buffer * 304@@ -1114,6 +1255,11 @@ static int cgi_create_env(server *srv, connection *con, plugin_data *p, buffer *
301 hctx->fde_ndx = -1; 305 hctx->fde_ndx = -1;
302 306
303 con->plugin_ctx[p->id] = hctx; 307 con->plugin_ctx[p->id] = hctx;
@@ -309,7 +313,7 @@ index 734ecee..c51f43c 100644
309 313
310 fdevent_register(srv->ev, hctx->fd, cgi_handle_fdevent, hctx); 314 fdevent_register(srv->ev, hctx->fd, cgi_handle_fdevent, hctx);
311 fdevent_event_set(srv->ev, &(hctx->fde_ndx), hctx->fd, FDEVENT_IN); 315 fdevent_event_set(srv->ev, &(hctx->fde_ndx), hctx->fd, FDEVENT_IN);
312@@ -1179,7 +1323,8 @@ static int cgi_create_env(server *srv, connection *con, plugin_data *p, buffer * 316@@ -1128,7 +1274,8 @@ static int cgi_create_env(server *srv, connection *con, plugin_data *p, buffer *
313 317
314 close(hctx->fd); 318 close(hctx->fd);
315 319
@@ -319,7 +323,7 @@ index 734ecee..c51f43c 100644
319 323
320 con->plugin_ctx[p->id] = NULL; 324 con->plugin_ctx[p->id] = NULL;
321 325
322@@ -1204,6 +1349,8 @@ static int mod_cgi_patch_connection(server *srv, connection *con, plugin_data *p 326@@ -1153,6 +1300,8 @@ static int mod_cgi_patch_connection(server *srv, connection *con, plugin_data *p
323 327
324 PATCH(cgi); 328 PATCH(cgi);
325 PATCH(execute_x_only); 329 PATCH(execute_x_only);
@@ -328,7 +332,7 @@ index 734ecee..c51f43c 100644
328 332
329 /* skip the first, the global context */ 333 /* skip the first, the global context */
330 for (i = 1; i < srv->config_context->used; i++) { 334 for (i = 1; i < srv->config_context->used; i++) {
331@@ -1221,6 +1368,10 @@ static int mod_cgi_patch_connection(server *srv, connection *con, plugin_data *p 335@@ -1170,6 +1319,10 @@ static int mod_cgi_patch_connection(server *srv, connection *con, plugin_data *p
332 PATCH(cgi); 336 PATCH(cgi);
333 } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("cgi.execute-x-only"))) { 337 } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("cgi.execute-x-only"))) {
334 PATCH(execute_x_only); 338 PATCH(execute_x_only);
@@ -339,7 +343,7 @@ index 734ecee..c51f43c 100644
339 } 343 }
340 } 344 }
341 } 345 }
342@@ -1273,6 +1424,21 @@ URIHANDLER_FUNC(cgi_is_handled) { 346@@ -1222,6 +1375,21 @@ URIHANDLER_FUNC(cgi_is_handled) {
343 TRIGGER_FUNC(cgi_trigger) { 347 TRIGGER_FUNC(cgi_trigger) {
344 plugin_data *p = p_d; 348 plugin_data *p = p_d;
345 size_t ndx; 349 size_t ndx;
@@ -361,7 +365,7 @@ index 734ecee..c51f43c 100644
361 /* the trigger handle only cares about lonely PID which we have to wait for */ 365 /* the trigger handle only cares about lonely PID which we have to wait for */
362 #ifndef __WIN32 366 #ifndef __WIN32
363 367
364@@ -1381,7 +1547,8 @@ SUBREQUEST_FUNC(mod_cgi_handle_subrequest) { 368@@ -1330,7 +1498,8 @@ SUBREQUEST_FUNC(mod_cgi_handle_subrequest) {
365 log_error_write(srv, __FILE__, __LINE__, "sds", "cgi close failed ", hctx->fd, strerror(errno)); 369 log_error_write(srv, __FILE__, __LINE__, "sds", "cgi close failed ", hctx->fd, strerror(errno));
366 } 370 }
367 371
@@ -371,7 +375,7 @@ index 734ecee..c51f43c 100644
371 375
372 con->plugin_ctx[p->id] = NULL; 376 con->plugin_ctx[p->id] = NULL;
373 377
374@@ -1413,7 +1580,8 @@ SUBREQUEST_FUNC(mod_cgi_handle_subrequest) { 378@@ -1362,7 +1531,8 @@ SUBREQUEST_FUNC(mod_cgi_handle_subrequest) {
375 log_error_write(srv, __FILE__, __LINE__, "sds", "cgi close failed ", hctx->fd, strerror(errno)); 379 log_error_write(srv, __FILE__, __LINE__, "sds", "cgi close failed ", hctx->fd, strerror(errno));
376 } 380 }
377 381
@@ -381,6 +385,3 @@ index 734ecee..c51f43c 100644
381 385
382 con->plugin_ctx[p->id] = NULL; 386 con->plugin_ctx[p->id] = NULL;
383 return HANDLER_FINISHED; 387 return HANDLER_FINISHED;
384--
3851.8.4.2
386
diff --git a/meta/recipes-extended/lighttpd/lighttpd_1.4.35.bb b/meta/recipes-extended/lighttpd/lighttpd_1.4.36.bb
index d3888e62e5..67b6e3749b 100644
--- a/meta/recipes-extended/lighttpd/lighttpd_1.4.35.bb
+++ b/meta/recipes-extended/lighttpd/lighttpd_1.4.36.bb
@@ -5,8 +5,6 @@ BUGTRACKER = "http://redmine.lighttpd.net/projects/lighttpd/issues"
5LICENSE = "BSD" 5LICENSE = "BSD"
6LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579" 6LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579"
7 7
8PR = "r1"
9
10SECTION = "net" 8SECTION = "net"
11DEPENDS = "zlib libpcre" 9DEPENDS = "zlib libpcre"
12RDEPENDS_${PN} += " \ 10RDEPENDS_${PN} += " \
@@ -17,8 +15,7 @@ RDEPENDS_${PN} += " \
17 lighttpd-module-staticfile \ 15 lighttpd-module-staticfile \
18" 16"
19 17
20 18SRC_URI = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.tar.xz \
21SRC_URI = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.tar.bz2 \
22 file://index.html.lighttpd \ 19 file://index.html.lighttpd \
23 file://lighttpd.conf \ 20 file://lighttpd.conf \
24 file://lighttpd \ 21 file://lighttpd \
@@ -27,8 +24,8 @@ SRC_URI = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.t
27 file://0001-mod_cgi-buffers-data-without-bound.patch \ 24 file://0001-mod_cgi-buffers-data-without-bound.patch \
28 " 25 "
29 26
30SRC_URI[md5sum] = "f7a88130ee9984b421ad8aa80629750a" 27SRC_URI[md5sum] = "1843daffcb018aa528f6d15d43544654"
31SRC_URI[sha256sum] = "4a71c1f6d8af41ed894b507720c4c17184dc320590013881d5170ca7f15c5bf7" 28SRC_URI[sha256sum] = "897ab6b1cc7bd51671f8af759e7846245fbbca0685c30017e93a5882a9ac1a53"
32 29
33PACKAGECONFIG ??= "openssl" 30PACKAGECONFIG ??= "openssl"
34PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl" 31PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl"