diff options
author | Tavian Barnes <tavianator@gmail.com> | 2010-03-12 17:17:06 -0500 |
---|---|---|
committer | Tavian Barnes <tavianator@gmail.com> | 2010-03-12 17:17:06 -0500 |
commit | 13a0ea225fb89fe1928303faf9fa23afe355ab97 (patch) | |
tree | 14686117372277f4030b2fec20f29e54b0e864ff /dimension | |
parent | 17f12a717ffea58b430affff4951c6527189c990 (diff) | |
download | dimension-13a0ea225fb89fe1928303faf9fa23afe355ab97.tar.xz |
Check for malloc() failures.
Diffstat (limited to 'dimension')
-rw-r--r-- | dimension/lexer.l | 15 | ||||
-rw-r--r-- | dimension/parse.c | 2 | ||||
-rw-r--r-- | dimension/tokenize.c | 2 |
3 files changed, 13 insertions, 6 deletions
diff --git a/dimension/lexer.l b/dimension/lexer.l index 5027d71..4beeee7 100644 --- a/dimension/lexer.l +++ b/dimension/lexer.l @@ -81,12 +81,15 @@ RETURN(); \ } while (0) -#define STRING_TOKEN() \ - do { \ - NEW_TOKEN(DMNSN_T_STRING); \ - lvalp->value = malloc(string_extent); \ - lvalp->value[0] = '\0'; \ - CALCULATE_COLUMN(); \ +#define STRING_TOKEN() \ + do { \ + NEW_TOKEN(DMNSN_T_STRING); \ + lvalp->value = malloc(string_extent); \ + if (!lvalp->value) \ + dmnsn_error(DMNSN_SEVERITY_HIGH, \ + "Couldn't allocate space for token value."); \ + lvalp->value[0] = '\0'; \ + CALCULATE_COLUMN(); \ } while (0) #define STRCAT(str, len) \ diff --git a/dimension/parse.c b/dimension/parse.c index bc57cef..7897b86 100644 --- a/dimension/parse.c +++ b/dimension/parse.c @@ -519,6 +519,8 @@ dmnsn_vector_promote(dmnsn_astnode astnode, dmnsn_symbol_table *symtable) component.type = DMNSN_AST_INTEGER; long *val = malloc(sizeof(long)); + if (!val) + dmnsn_error(DMNSN_SEVERITY_HIGH, "Couldn't allocate room for integer."); *val = 0; component.ptr = val; diff --git a/dimension/tokenize.c b/dimension/tokenize.c index bccccc9..2bead0b 100644 --- a/dimension/tokenize.c +++ b/dimension/tokenize.c @@ -226,6 +226,8 @@ dmnsn_include_buffer(int token, dmnsn_token_buffer *prev, dmnsn_error(DMNSN_SEVERITY_HIGH, "Couldn't allocate space for filename."); char *localdir = dirname(filename_copy); char *local_include = malloc(strlen(localdir) + strlen(include) + 2); + if (!local_include) + dmnsn_error(DMNSN_SEVERITY_HIGH, "Couldn't allocate space for filename."); strcpy(local_include, localdir); strcat(local_include, "/"); strcat(local_include, include); |