components/lighttpd/patches/07-parfait-errors.patch
branchs11-update
changeset 3053 60a045d209ef
parent 2925 d64f6e80d9b1
--- a/components/lighttpd/patches/07-parfait-errors.patch	Sat Apr 05 19:21:02 2014 -0700
+++ b/components/lighttpd/patches/07-parfait-errors.patch	Mon Mar 31 06:47:28 2014 -0700
@@ -1,28 +1,6 @@
 Developed in-house, fed to community.
 http://redmine.lighttpd.net/issues/2530
-Partially accepted, others should be fixed by version or not
-at all, parfait annotations are ignored. Target version 1.4.34.
 
---- src/mod_webdav.c	2013-10-11 07:42:39.116745543 -0700
-+++ src/mod_webdav.c	2013-10-11 07:43:19.220464118 -0700
-@@ -1717,7 +1717,7 @@
- 					if (-1 == c->file.fd &&  /* open the file if not already open */
- 					    -1 == (c->file.fd = open(c->file.name->ptr, O_RDONLY))) {
- 						log_error_write(srv, __FILE__, __LINE__, "ss", "open failed: ", strerror(errno));
--
-+						close(fd);
- 						return HANDLER_ERROR;
- 					}
- 
-@@ -1726,7 +1726,7 @@
- 								strerror(errno), c->file.name,  c->file.fd);
- 						close(c->file.fd);
- 						c->file.fd = -1;
--
-+						close(fd);
- 						return HANDLER_ERROR;
- 					}
- 
 --- src/lempar.c	2012-08-31 07:11:20.000000000 -0700
 +++ src/lempar.c	2013-10-14 02:10:29.201323553 -0700
 @@ -486,6 +486,9 @@
@@ -49,24 +27,6 @@
  
  		s->mysql_pre = buffer_init();
  		s->mysql_post = buffer_init();
-@@ -248,7 +251,7 @@
- 
- 			if (NULL == (s->mysql = mysql_init(NULL))) {
- 				log_error_write(srv, __FILE__, __LINE__, "s", "mysql_init() failed, exiting...");
--
-+				buffer_free(sel);
- 				return HANDLER_ERROR;
- 			}
- 
-@@ -268,7 +271,7 @@
- 						FOO(mydb), s->port, FOO(mysock), 0)) {
- #endif
- 				log_error_write(srv, __FILE__, __LINE__, "s", mysql_error(s->mysql));
--
-+				buffer_free(sel);
- 				return HANDLER_ERROR;
- 			}
- #undef FOO
 --- src/lemon.c	2012-08-31 07:11:20.000000000 -0700
 +++ src/lemon.c	2013-10-14 04:29:24.547185717 -0700
 @@ -453,13 +453,11 @@
@@ -101,27 +61,8 @@
  	return NULL;
  }
  
---- src/array.c	2010-08-17 02:04:38.000000000 -0700
-+++ src/array.c	2013-10-14 07:05:54.354135229 -0700
-@@ -168,6 +168,7 @@
- data_unset *array_replace(array *a, data_unset *du) {
- 	int ndx;
- 
-+	if (du == NULL) return NULL;
- 	if (-1 == (ndx = array_get_index(a, du->key->ptr, du->key->used, NULL))) {
- 		array_insert_unique(a, du);
- 		return NULL;
 --- src/configfile.c	2012-11-07 06:50:29.000000000 -0800
 +++ src/configfile.c	2013-10-15 06:45:37.918474628 -0700
-@@ -1121,7 +1121,7 @@
- 	if (NULL != getcwd(dcwd->value->ptr, dcwd->value->size - 1)) {
- 		dcwd->value->used = strlen(dcwd->value->ptr) + 1;
- 		buffer_copy_string_len(dcwd->key, CONST_STR_LEN("var.CWD"));
--		array_insert_unique(srv->config, (data_unset *)dcwd);
-+		if (array_insert_unique(srv->config, (data_unset *)dcwd) == -1) dcwd->free(dcwd);
- 	}
- 
- 	ret = config_parse_file(srv, &context, fn);
 @@ -1131,12 +1131,14 @@
  	context_free(&context);
  
@@ -145,32 +86,6 @@
  			return -1;
  		}
  
-@@ -1159,19 +1162,23 @@
- 		}
- 
- 		prepends = (data_array *)configparser_merge_data((data_unset *)prepends, (data_unset *)modules);
-+		if (prepends == NULL) {
-+			/* Parfait_ALLOW memory-leak - false positive dcwd variable - memory is properly freed on server close */
-+			return -1;
-+		}
- 		buffer_copy_string_buffer(prepends->key, modules->key);
- 		array_replace(srv->config, (data_unset *)prepends);
- 		modules->free((data_unset *)modules);
- 		modules = prepends;
- 
- 		/* append default modules */
--		if (NULL == array_get_element(modules->value, "mod_dirlisting")) {
-+		if (modules != NULL && NULL == array_get_element(modules->value, "mod_dirlisting")) {
- 			ds = data_string_init();
- 			buffer_copy_string_len(ds->value, CONST_STR_LEN("mod_dirlisting"));
- 			array_insert_unique(modules->value, (data_unset *)ds);
- 		}
- 
--		if (NULL == array_get_element(modules->value, "mod_staticfile")) {
-+		if (modules != NULL && NULL == array_get_element(modules->value, "mod_staticfile")) {
- 			ds = data_string_init();
- 			buffer_copy_string_len(ds->value, CONST_STR_LEN("mod_staticfile"));
- 			array_insert_unique(modules->value, (data_unset *)ds);
 @@ -1200,9 +1207,11 @@