aboutsummaryrefslogtreecommitdiffstats
path: root/debian/patches/470_alloc.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/470_alloc.patch')
-rw-r--r--debian/patches/470_alloc.patch151
1 files changed, 0 insertions, 151 deletions
diff --git a/debian/patches/470_alloc.patch b/debian/patches/470_alloc.patch
deleted file mode 100644
index b7cae1a..0000000
--- a/debian/patches/470_alloc.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-Subject: Add overflow detection (still support <C99)
-From: Scarlett <scarlett@xavin.net>, Tatsuya Kinoshita <tats@debian.org>
-Origin: http://marc.info/?l=openbsd-ports&m=142090828929750&w=2
-
-diff --git a/alloc.h b/alloc.h
-new file mode 100644
-index 0000000..fa0d391
---- /dev/null
-+++ b/alloc.h
-@@ -0,0 +1,39 @@
-+/*
-+ * by Scarlett. public domain.
-+ * replacements for w3m's allocation macros which add overflow
-+ * detection and concentrate the macros in one file
-+ */
-+#ifndef W3_ALLOC_H
-+#define W3_ALLOC_H
-+#include <gc.h>
-+#include <stdlib.h>
-+#include <stdio.h>
-+#include <limits.h>
-+
-+static inline size_t
-+z_mult_no_oflow_(size_t n, size_t size)
-+{
-+ if (size != 0 && n > ULONG_MAX / size) {
-+ fprintf(stderr,
-+ "w3m: overflow in malloc, %lu*%lu\n", (unsigned long)n, (unsigned long)size);
-+ exit(1);
-+ }
-+ return n * size;
-+}
-+
-+#define New(type) \
-+ (GC_MALLOC(sizeof(type)))
-+
-+#define NewAtom(type) \
-+ (GC_MALLOC_ATOMIC(sizeof(type)))
-+
-+#define New_N(type, n) \
-+ (GC_MALLOC(z_mult_no_oflow_((n), sizeof(type))))
-+
-+#define NewAtom_N(type, n) \
-+ (GC_MALLOC_ATOMIC(z_mult_no_oflow_((n), sizeof(type))))
-+
-+#define New_Reuse(type, ptr, n) \
-+ (GC_REALLOC((ptr), z_mult_no_oflow_((n), sizeof(type))))
-+
-+#endif /* W3_ALLOC_H */
-diff --git a/indep.h b/indep.h
-index 84416ed..2809832 100644
---- a/indep.h
-+++ b/indep.h
-@@ -1,7 +1,7 @@
- /* $Id: indep.h,v 1.16 2003/09/22 21:02:19 ukai Exp $ */
- #ifndef INDEP_H
- #define INDEP_H
--#include <gc.h>
-+#include "alloc.h"
- #include "Str.h"
- #include "config.h"
-
-@@ -92,11 +92,6 @@ extern char *w3m_etc_dir();
- extern char *w3m_conf_dir();
- extern char *w3m_help_dir();
-
--#define New(type) ((type*)GC_MALLOC(sizeof(type)))
--#define NewAtom(type) ((type*)GC_MALLOC_ATOMIC(sizeof(type)))
--#define New_N(type,n) ((type*)GC_MALLOC((n)*sizeof(type)))
--#define NewAtom_N(type,n) ((type*)GC_MALLOC_ATOMIC((n)*sizeof(type)))
--#define New_Reuse(type,ptr,n) ((type*)GC_REALLOC((ptr),(n)*sizeof(type)))
- #define NewWithoutGC(type) ((type*)xmalloc(sizeof(type)))
- #define NewWithoutGC_N(type,n) ((type*)xmalloc((n)*sizeof(type)))
- #define NewWithoutGC_Reuse(type,ptr,n) ((type*)xrealloc(ptr,(n)*sizeof(type)))
-diff --git a/libwc/charset.c b/libwc/charset.c
-index 3f0b74d..ea79b1c 100644
---- a/libwc/charset.c
-+++ b/libwc/charset.c
-@@ -1,8 +1,7 @@
-
- #include <stdlib.h>
- #include <ctype.h>
--#include <gc.h>
--#define New_N(type,n) ((type*)GC_MALLOC((n)*sizeof(type)))
-+#include "../alloc.h"
-
- #include "wc.h"
-
-diff --git a/libwc/status.c b/libwc/status.c
-index d25c924..4a2ebf8 100644
---- a/libwc/status.c
-+++ b/libwc/status.c
-@@ -1,7 +1,6 @@
-
- #include <string.h>
--#include <gc.h>
--#define New_N(type,n) ((type*)GC_MALLOC((n)*sizeof(type)))
-+#include "../alloc.h"
-
- #include "wc.h"
- #ifdef USE_UNICODE
-diff --git a/main.c b/main.c
-index 76256d6..d37b243 100644
---- a/main.c
-+++ b/main.c
-@@ -383,6 +383,13 @@ make_optional_header_string(char *s)
- return hs;
- }
-
-+static void *
-+die_oom(size_t bytes)
-+{
-+ fprintf(stderr, "Out of memory: %lu bytes unavailable!\n", (unsigned long)bytes);
-+ exit(1);
-+}
-+
- int
- main(int argc, char **argv, char **envp)
- {
-@@ -412,6 +419,7 @@ main(int argc, char **argv, char **envp)
- char **getimage_args = NULL;
- #endif /* defined(DONT_CALL_GC_AFTER_FORK) && defined(USE_IMAGE) */
- GC_INIT();
-+ GC_set_oom_fn(die_oom);
- #if defined(ENABLE_NLS) || (defined(USE_M17N) && defined(HAVE_LANGINFO_CODESET))
- setlocale(LC_ALL, "");
- #endif
-diff --git a/matrix.c b/matrix.c
-index 64fd0ad..bc7a5be 100644
---- a/matrix.c
-+++ b/matrix.c
-@@ -34,18 +34,12 @@
-
- #include "config.h"
- #include "matrix.h"
--#include <gc.h>
-+#include "alloc.h"
-
- /*
- * Macros from "fm.h".
- */
-
--#define New(type) ((type*)GC_MALLOC(sizeof(type)))
--#define NewAtom(type) ((type*)GC_MALLOC_ATOMIC(sizeof(type)))
--#define New_N(type,n) ((type*)GC_MALLOC((n)*sizeof(type)))
--#define NewAtom_N(type,n) ((type*)GC_MALLOC_ATOMIC((n)*sizeof(type)))
--#define Renew_N(type,ptr,n) ((type*)GC_REALLOC((ptr),(n)*sizeof(type)))
--
- #define SWAPD(a,b) { double tmp = a; a = b; b = tmp; }
- #define SWAPI(a,b) { int tmp = a; a = b; b = tmp; }
-