summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2009-10-30 18:43:24 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2009-10-30 18:43:24 +0000
commit6743cd2838c98a6c8127771ac05c6695131f26f5 (patch)
tree71c87689d03cfa48404a4ef86049447f58ae39aa
parent8caff3a42d43b9b1377f3802a105817dcd4301dc (diff)
downloadmandoc-6743cd2838c98a6c8127771ac05c6695131f26f5.tar.gz
mandoc-6743cd2838c98a6c8127771ac05c6695131f26f5.tar.zst
mandoc-6743cd2838c98a6c8127771ac05c6695131f26f5.zip
Continued safe handling of allocations.
-rw-r--r--chars.c19
-rw-r--r--html.c22
-rw-r--r--term.c9
3 files changed, 30 insertions, 20 deletions
diff --git a/chars.c b/chars.c
index 4db245cb..34b1e9cd 100644
--- a/chars.c
+++ b/chars.c
@@ -1,4 +1,4 @@
-/* $Id: chars.c,v 1.9 2009/09/23 11:02:21 kristaps Exp $ */
+/* $Id: chars.c,v 1.10 2009/10/30 18:43:24 kristaps Exp $ */
/*
* Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -15,7 +15,7 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#include <assert.h>
-#include <err.h>
+#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -89,13 +89,17 @@ chars_init(enum chars type)
* (they're in-line re-ordered during lookup).
*/
- if (NULL == (tab = malloc(sizeof(struct tbl))))
- err(1, "malloc");
- tab->type = type;
+ tab = malloc(sizeof(struct tbl));
+ if (NULL == tab) {
+ fprintf(stderr, "memory exhausted\n");
+ exit(EXIT_FAILURE);
+ }
htab = calloc(PRINT_HI - PRINT_LO + 1, sizeof(struct ln **));
- if (NULL == htab)
- err(1, "malloc");
+ if (NULL == htab) {
+ fprintf(stderr, "memory exhausted\n");
+ exit(EXIT_FAILURE);
+ }
for (i = 0; i < LINES_MAX; i++) {
hash = (int)lines[i].code[0] - PRINT_LO;
@@ -111,6 +115,7 @@ chars_init(enum chars type)
}
tab->htab = htab;
+ tab->type = type;
return(tab);
}
diff --git a/html.c b/html.c
index 42a649ba..4f02e479 100644
--- a/html.c
+++ b/html.c
@@ -1,4 +1,4 @@
-/* $Id: html.c,v 1.71 2009/10/30 04:57:17 kristaps Exp $ */
+/* $Id: html.c,v 1.72 2009/10/30 18:43:24 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -100,16 +100,15 @@ html_alloc(char *outopts)
toks[2] = "includes";
toks[3] = NULL;
- if (NULL == (h = calloc(1, sizeof(struct html))))
- return(NULL);
+ h = calloc(1, sizeof(struct html));
+ if (NULL == h) {
+ fprintf(stderr, "memory exhausted\n");
+ exit(EXIT_FAILURE);
+ }
h->tags.head = NULL;
h->ords.head = NULL;
-
- if (NULL == (h->symtab = chars_init(CHARS_HTML))) {
- free(h);
- return(NULL);
- }
+ h->symtab = chars_init(CHARS_HTML);
while (outopts && *outopts)
switch (getsubopt(&outopts, UNCONST(toks), &v)) {
@@ -354,8 +353,11 @@ print_otag(struct html *h, enum htmltag tag,
struct tag *t;
if ( ! (HTML_NOSTACK & htmltags[tag].flags)) {
- if (NULL == (t = malloc(sizeof(struct tag))))
- err(EXIT_FAILURE, "malloc");
+ t = malloc(sizeof(struct tag));
+ if (NULL == t) {
+ fprintf(stderr, "memory exhausted\n");
+ exit(EXIT_FAILURE);
+ }
t->tag = tag;
t->next = h->tags.head;
h->tags.head = t;
diff --git a/term.c b/term.c
index 787b203c..1dc2576f 100644
--- a/term.c
+++ b/term.c
@@ -1,4 +1,4 @@
-/* $Id: term.c,v 1.116 2009/10/28 06:54:12 kristaps Exp $ */
+/* $Id: term.c,v 1.117 2009/10/30 18:43:24 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -77,8 +77,11 @@ term_alloc(enum termenc enc)
{
struct termp *p;
- if (NULL == (p = calloc(1, sizeof(struct termp))))
- return(NULL);
+ p = calloc(1, sizeof(struct termp));
+ if (NULL == p) {
+ fprintf(stderr, "memory exhausted\n");
+ exit(EXIT_FAILURE);
+ }
p->maxrmargin = 78;
p->enc = enc;
return(p);