diff options
Diffstat (limited to 'meta/recipes-extended/lighttpd')
-rw-r--r-- | meta/recipes-extended/lighttpd/lighttpd/0001-mod_cgi-buffers-data-without-bound.patch | 55 | ||||
-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 | |||
6 | Upstream-Status: Submitted [http://redmine.lighttpd.net/issues/1264] | 6 | Upstream-Status: Submitted [http://redmine.lighttpd.net/issues/1264] |
7 | 7 | ||
8 | Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> | 8 | Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> |
9 | |||
10 | Update context for 1.4.36. | ||
11 | |||
12 | Signed-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 | ||
14 | diff --git a/doc/config/lighttpd.conf b/doc/config/lighttpd.conf | 18 | diff --git a/doc/config/lighttpd.conf b/doc/config/lighttpd.conf |
15 | index 60b0ae1..9c101a7 100644 | 19 | index 60b0ae1..9c101a7 100644 |
@@ -31,7 +35,7 @@ index 60b0ae1..9c101a7 100644 | |||
31 | ####################################################################### | 35 | ####################################################################### |
32 | ## | 36 | ## |
33 | diff --git a/src/mod_cgi.c b/src/mod_cgi.c | 37 | diff --git a/src/mod_cgi.c b/src/mod_cgi.c |
34 | index 734ecee..c51f43c 100644 | 38 | index 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 | -- | ||
385 | 1.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" | |||
5 | LICENSE = "BSD" | 5 | LICENSE = "BSD" |
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579" | 6 | LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579" |
7 | 7 | ||
8 | PR = "r1" | ||
9 | |||
10 | SECTION = "net" | 8 | SECTION = "net" |
11 | DEPENDS = "zlib libpcre" | 9 | DEPENDS = "zlib libpcre" |
12 | RDEPENDS_${PN} += " \ | 10 | RDEPENDS_${PN} += " \ |
@@ -17,8 +15,7 @@ RDEPENDS_${PN} += " \ | |||
17 | lighttpd-module-staticfile \ | 15 | lighttpd-module-staticfile \ |
18 | " | 16 | " |
19 | 17 | ||
20 | 18 | SRC_URI = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.tar.xz \ | |
21 | SRC_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 | ||
30 | SRC_URI[md5sum] = "f7a88130ee9984b421ad8aa80629750a" | 27 | SRC_URI[md5sum] = "1843daffcb018aa528f6d15d43544654" |
31 | SRC_URI[sha256sum] = "4a71c1f6d8af41ed894b507720c4c17184dc320590013881d5170ca7f15c5bf7" | 28 | SRC_URI[sha256sum] = "897ab6b1cc7bd51671f8af759e7846245fbbca0685c30017e93a5882a9ac1a53" |
32 | 29 | ||
33 | PACKAGECONFIG ??= "openssl" | 30 | PACKAGECONFIG ??= "openssl" |
34 | PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl" | 31 | PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl" |