summaryrefslogtreecommitdiffstats
path: root/debian/vendor-h2o/fuzz/gather-data.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/vendor-h2o/fuzz/gather-data.patch')
-rw-r--r--debian/vendor-h2o/fuzz/gather-data.patch90
1 files changed, 0 insertions, 90 deletions
diff --git a/debian/vendor-h2o/fuzz/gather-data.patch b/debian/vendor-h2o/fuzz/gather-data.patch
deleted file mode 100644
index 4b8f5f7..0000000
--- a/debian/vendor-h2o/fuzz/gather-data.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-diff --git a/lib/common/socket.c b/lib/common/socket.c
-index d7da3da..04b7953 100644
---- a/lib/common/socket.c
-+++ b/lib/common/socket.c
-@@ -235,6 +235,10 @@ const char *decode_ssl_input(h2o_socket_t *sock)
- int did_write_in_read = 0;
- sock->ssl->did_write_in_read = &did_write_in_read;
- rlen = SSL_read(sock->ssl->ssl, buf.base, (int)buf.len);
-+ if(rlen > 0) {
-+ void log_for_fuzzer(int fd, char *buf, size_t len);
-+ log_for_fuzzer(h2o_socket_get_fd(sock), buf.base, rlen);
-+ }
- sock->ssl->did_write_in_read = NULL;
- if (did_write_in_read)
- return "ssl renegotiation not supported";
-@@ -387,6 +391,8 @@ h2o_socket_t *h2o_socket_import(h2o_loop_t *loop, h2o_socket_export_t *info)
-
- void h2o_socket_close(h2o_socket_t *sock)
- {
-+ void close_for_fuzzer(int);
-+ close_for_fuzzer(h2o_socket_get_fd(sock));
- if (sock->ssl == NULL) {
- dispose_socket(sock, 0);
- } else {
-diff --git a/lib/common/socket/evloop.c.h b/lib/common/socket/evloop.c.h
-index d5130b4..036ea94 100644
---- a/lib/common/socket/evloop.c.h
-+++ b/lib/common/socket/evloop.c.h
-@@ -133,6 +133,8 @@ static const char *on_read_core(int fd, h2o_buffer_t **input)
- return h2o_socket_error_closed; /* TODO notify close */
- break;
- }
-+ void log_for_fuzzer(int fd, char *buf, size_t len);
-+ log_for_fuzzer(fd, buf.base, rret);
- (*input)->size += rret;
- if (buf.len != rret)
- break;
-diff --git a/lib/core/util.c b/lib/core/util.c
-index 6a40d20..f1c2317 100644
---- a/lib/core/util.c
-+++ b/lib/core/util.c
-@@ -23,6 +23,8 @@
- #include <inttypes.h>
- #include <stddef.h>
- #include <stdio.h>
-+#include <sys/stat.h>
-+#include <fcntl.h>
- #include <stdlib.h>
- #include <string.h>
- #include <stdarg.h>
-@@ -496,6 +498,39 @@ h2o_iovec_t h2o_build_destination(h2o_req_t *req, const char *prefix, size_t pre
- return h2o_concat_list(&req->pool, parts, num_parts);
- }
-
-+#define FDS_MAX 1024
-+#define MARKER "\n--MARK--\n"
-+static int fds[FDS_MAX];
-+static __thread int ids;
-+void close_for_fuzzer(int fd)
-+{
-+ assert(fd < FDS_MAX);
-+ if (!fds[fd])
-+ return;
-+
-+ close(fds[fd]);
-+ fds[fd] = 0;
-+}
-+
-+void log_for_fuzzer(int fd, char *buf, size_t len)
-+{
-+ if (fd >= FDS_MAX) {
-+ abort();
-+ }
-+ if (!fds[fd]) {
-+ char buf[1024];
-+ snprintf(buf, 1024, "out.%u.%u.%u.%lu", (unsigned)pthread_self(), (unsigned)fd, (unsigned)ids, (unsigned long)random());
-+ ids++;
-+ fds[fd] = open(buf, O_WRONLY | O_CREAT | O_TRUNC, 0644);
-+ if (!fds[fd])
-+ fds[fd] = open(buf, O_WRONLY | O_CREAT | O_TRUNC, 0644);
-+ assert(fds[fd] > 0);
-+ }
-+ if (len > 0 && (buf[0] != '\0' || len > 1)) {
-+ write(fds[fd], buf, len);
-+ write(fds[fd], MARKER, strlen(MARKER));
-+ }
-+}
- /* h2-14 and h2-16 are kept for backwards compatibility, as they are often used */
- #define ALPN_ENTRY(s) \
- { \