Add overflow detection

Origin: http://marc.info/?l=openbsd-ports&m=142090828929750&w=2

* main.c: Call exit(1) when out of memory to avoid dereferencing null
pointers when gc's malloc fails.

* alloc.h: Replacements for w3m's allocation macros which add
overflow detection and concentrate the macros in one file.

* indep.h, libwc/charset.c, libwc/status.c, matrix.c: Use the
overflow-detecting allocation macros from alloc.h.
This commit is contained in:
Scarlett
2015-01-15 19:38:11 +09:00
committed by Tatsuya Kinoshita
parent fde71b37d2
commit cbec7032ee
6 changed files with 51 additions and 17 deletions

View File

@@ -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; }