stardis

Perform coupled heat transfer calculations
git clone git://git.meso-star.fr/stardis.git
Log | Files | Refs | README | LICENSE

commit f4a5bb788db2517c4a968e43098ce93c9e1b89ac
parent 5fdea15d394df019f7d3bb32ecc465b5c5ca9431
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Mon, 20 Jan 2025 16:25:30 +0100

BugFix: possible SEGFAULT on error path

When using variable expansion on the stardis file, the error path could
try to free a garbage pointer.

Diffstat:
Msrc/stardis-parsing.c | 10+++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/stardis-parsing.c b/src/stardis-parsing.c @@ -2492,29 +2492,29 @@ read_model ERR(txtrdr_read_line(txtrdr)); line = txtrdr_get_line(txtrdr); if(!line) break; - word_initialized = 1; switch(wordexp(line, &pwordexp, flags)) { case 0: /* No error */ + word_initialized = 1; break; case WRDE_NOSPACE: /* Ran out of memory. */ res = RES_MEM_ERR; goto error; case WRDE_BADCHAR: /* A metachar appears in the wrong place. */ logger_print(stardis->logger, LOG_ERROR, - "%s: word expansion error: invalid character:\n", name); + "%s: word expansion error: invalid character.\n", name); goto exp_error; case WRDE_BADVAL: /* Undefined var reference with WRDE_UNDEF. */ logger_print(stardis->logger, LOG_ERROR, - "%s: word expansion error: undefined environment variable:\n", name); + "%s: word expansion error: undefined environment variable.\n", name); goto exp_error; case WRDE_CMDSUB: /* Command substitution with WRDE_NOCMD. */ logger_print(stardis->logger, LOG_ERROR, - "%s: word expansion error: command substitution is not enabled:\n", + "%s: word expansion error: command substitution is not enabled.\n", name); goto exp_error; case WRDE_SYNTAX: /* Shell syntax error. */ logger_print(stardis->logger, LOG_ERROR, - "%s: word expansion error: syntax error:\n", name); + "%s: word expansion error: syntax error.\n", name); goto exp_error; default: FATAL("Unexpected return code.\n");