File fix-header-handling.diff of Package rubygem-passenger

--- ./src/apache2_module/Hooks.cpp.orig	2015-11-23 13:15:44.812756338 +0100
+++ ./src/apache2_module/Hooks.cpp	2015-11-23 15:40:20.085100070 +0100
@@ -767,10 +767,12 @@
 		char *current = result + sizeof("HTTP_") - 1;
 
 		while (*current != '\0') {
-			if (*current == '-') {
+                        if (apr_isalnum(*current)) {
+                            *current = apr_toupper(*current);
+                        } else if (*current == '-') {
 				*current = '_';
 			} else {
-				*current = apr_toupper(*current);
+				return NULL;
 			}
 			current++;
 		}
@@ -852,6 +854,16 @@
 		}
 	}
 
+        bool valid_header_key(const char *current) {
+		while (*current != '\0') {
+                        if (!apr_isalnum(*current) && *current != '-') {
+                            return false;
+			}
+			current++;
+		}
+                return true;
+        }
+
 	string constructRequestHeaders(request_rec *r, DirectoryMapper &mapper,
 		bool &bodyIsChunked)
 	{
@@ -915,6 +927,9 @@
 			{
 				transferEncodingHeader = &hdrs[i];
 			} else {
+                                if (!valid_header_key(hdrs[i].key)) {
+				        continue;
+                                }
 				result.append(hdrs[i].key);
 				result.append(": ", 2);
 				if (hdrs[i].val != NULL) {
openSUSE Build Service is sponsored by