summaryrefslogtreecommitdiffstats
path: root/meta-app-framework/recipes-support/libmicrohttpd/libmicrohttpd
diff options
context:
space:
mode:
Diffstat (limited to 'meta-app-framework/recipes-support/libmicrohttpd/libmicrohttpd')
-rw-r--r--meta-app-framework/recipes-support/libmicrohttpd/libmicrohttpd/Check-response-existence-on-upgrade.patch49
-rw-r--r--meta-app-framework/recipes-support/libmicrohttpd/libmicrohttpd/allows-upgrade.patch81
2 files changed, 49 insertions, 81 deletions
diff --git a/meta-app-framework/recipes-support/libmicrohttpd/libmicrohttpd/Check-response-existence-on-upgrade.patch b/meta-app-framework/recipes-support/libmicrohttpd/libmicrohttpd/Check-response-existence-on-upgrade.patch
new file mode 100644
index 000000000..de7ff30c4
--- /dev/null
+++ b/meta-app-framework/recipes-support/libmicrohttpd/libmicrohttpd/Check-response-existence-on-upgrade.patch
@@ -0,0 +1,49 @@
+From: jose.bollo@iot.bzh
+Date: Thu, 4 May 2017 21:47:38 +0200
+Subject: [PATCH] Check response existence on upgrade
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When a connection upgrade is requested and when the
+request sent an error reply, the response is most of
+the time already sent when the test on
+connection->response->upgrade_handler is made, leading
+to dereferencing NULL.
+
+Two possibilities exist:
+
+ NULL == connection->response || NULL == connection->response->upgrade_handler
+
+or
+
+ NULL != connection->response && NULL == connection->response->upgrade_handler
+
+The first is prefered because it is probably safer to close the connection
+in that case.
+
+Upstream-Status: Accepted [https://gnunet.org/git/libmicrohttpd.git/commit/?id=b4216c60fdb5b48f6cfec416301fc63a1167e6cd]
+
+Change-Id: Ie6e7fc165f7fe3635ade0952bb34a0b937d38716
+Signed-off-by: José Bollo <jobol@nonadev.net>
+Signed-off-by: José Bollo <jose.bollo@iot.bzh>
+---
+ src/microhttpd/connection.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c
+index 4753d6e..91a4492 100644
+--- a/src/microhttpd/connection.c
++++ b/src/microhttpd/connection.c
+@@ -882,7 +882,7 @@ keepalive_possible (struct MHD_Connection *connection)
+ #ifdef UPGRADE_SUPPORT
+ if ( (MHD_str_equal_caseless_ (end,
+ "upgrade")) &&
+- (NULL == connection->response->upgrade_handler) )
++ (NULL == connection->response || NULL == connection->response->upgrade_handler) )
+ return MHD_NO;
+ #endif /* UPGRADE_SUPPORT */
+
+--
+2.9.3
+
diff --git a/meta-app-framework/recipes-support/libmicrohttpd/libmicrohttpd/allows-upgrade.patch b/meta-app-framework/recipes-support/libmicrohttpd/libmicrohttpd/allows-upgrade.patch
deleted file mode 100644
index 19601a537..000000000
--- a/meta-app-framework/recipes-support/libmicrohttpd/libmicrohttpd/allows-upgrade.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-diff -Naur a/src/microhttpd/connection.c b/src/microhttpd/connection.c
---- a/src/microhttpd/connection.c 2016-04-08 21:02:26.000000000 +0200
-+++ b/src/microhttpd/connection.c 2016-08-29 22:41:53.790560238 +0200
-@@ -708,6 +708,8 @@
- * "keep-alive", we proceed to use the default for the respective HTTP
- * version (which is conservative for HTTP 1.0, but might be a bit
- * optimistic for HTTP 1.1).
-+ * In the case of Upgrade, the header Connection should not be set
-+ * to keep-alive.
- *
- * @param connection the connection to check for keepalive
- * @return #MHD_YES if (based on the request), a keepalive is
-@@ -750,6 +752,59 @@
-
-
- /**
-+ * Should we try to keep the given connection alive? We can use the
-+ * TCP stream for a second request if the connection is HTTP 1.1 and
-+ * the "Connection" header either does not exist or is not set to
-+ * "close", or if the connection is HTTP 1.0 and the "Connection"
-+ * header is explicitly set to "keep-alive". If no HTTP version is
-+ * specified (or if it is not 1.0 or 1.1), we definitively close the
-+ * connection. If the "Connection" header is not exactly "close" or
-+ * "keep-alive", we proceed to use the default for the respective HTTP
-+ * version (which is conservative for HTTP 1.0, but might be a bit
-+ * optimistic for HTTP 1.1).
-+ * In the case of Upgrade, the connection should be kept alive even if
-+ * the header Connection is not keep-alive.
-+ *
-+ * @param connection the connection to check for keepalive
-+ * @return #MHD_YES if (based on the request), a keepalive is
-+ * legal
-+ */
-+static int
-+should_keepalive (struct MHD_Connection *connection)
-+{
-+ const char *end;
-+
-+ if (NULL == connection->version)
-+ return MHD_NO;
-+ if ( (NULL != connection->response) &&
-+ (0 != (connection->response->flags & MHD_RF_HTTP_VERSION_1_0_ONLY) ) )
-+ return MHD_NO;
-+ end = MHD_lookup_connection_value (connection,
-+ MHD_HEADER_KIND,
-+ MHD_HTTP_HEADER_CONNECTION);
-+ if (MHD_str_equal_caseless_(connection->version,
-+ MHD_HTTP_VERSION_1_1))
-+ {
-+ if (NULL == end)
-+ return MHD_YES;
-+ if ( (MHD_str_equal_caseless_ (end, "close")) )
-+ return MHD_NO;
-+ return MHD_YES;
-+ }
-+ if (MHD_str_equal_caseless_(connection->version,
-+ MHD_HTTP_VERSION_1_0))
-+ {
-+ if (NULL == end)
-+ return MHD_NO;
-+ if (MHD_str_equal_caseless_(end, "Keep-Alive"))
-+ return MHD_YES;
-+ return MHD_NO;
-+ }
-+ return MHD_NO;
-+}
-+
-+
-+/**
- * Produce HTTP "Date:" header.
- *
- * @param date where to write the header, with
-@@ -2795,7 +2850,7 @@
- }
- if (((MHD_YES == connection->read_closed) &&
- (0 == connection->read_buffer_offset)) ||
-- (MHD_NO == keepalive_possible (connection)))
-+ (MHD_NO == should_keepalive (connection)))
- {
- /* have to close for some reason */
- MHD_connection_close_ (connection,