From df05901d2f963c7576bc2b50e44c7c358d24109e Mon Sep 17 00:00:00 2001 From: picomeg <megordon5@gmail.com> Date: Fri, 18 Dec 2020 23:04:26 +0000 Subject: [PATCH] Tidy a few things that got missed --- src/hammer.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/hammer.c b/src/hammer.c index fc24e567..e70bd514 100644 --- a/src/hammer.c +++ b/src/hammer.c @@ -373,6 +373,7 @@ HParserBackendWithParams * h_get_backend_with_params_by_name(const char *name_wi if(name_with_params != NULL) { result = h_new(HParserBackendWithParams, 1); + result->name = NULL; result->params_string = NULL; if (result) { @@ -391,27 +392,28 @@ HParserBackendWithParams * h_get_backend_with_params_by_name(const char *name_wi name_len = len; } - result->name = h_new(char, name_len+1); - memset(result->name, '\0', name_len+1); - strncpy(result->name, name_with_params, name_len); - - be = h_query_backend_by_name(result->name); - - result->backend = be; - /* use the backend supplied method to extract any params from the input */ - result->params = NULL; - if(params_len > 0) { - if (be >= PB_MIN && be <= PB_MAX && be != PB_INVALID && - backends[be] != backends[PB_INVALID]) { - if (backends[be]->extract_params) { - backends[be]->extract_params(&(result->params), result->params_string); + if(name_len > 0) { + result->name = h_new(char, name_len+1); + memset(result->name, '\0', name_len+1); + strncpy(result->name, name_with_params, name_len); + + be = h_query_backend_by_name(result->name); + + result->backend = be; + /* use the backend supplied method to extract any params from the input */ + result->params = NULL; + if(params_len > 0) { + if (be >= PB_MIN && be <= PB_MAX && be != PB_INVALID && + backends[be] != backends[PB_INVALID]) { + if (backends[be]->extract_params) { + backends[be]->extract_params(&(result->params), result->params_string); + } } } } } } return result; - } #define DEFAULT_ENDIANNESS (BIT_BIG_ENDIAN | BYTE_BIG_ENDIAN) @@ -566,7 +568,7 @@ HParseResult* h_parse_finish(HSuspendedParser* s) { assert(s->done); } - // extract be_with_params + // extract result HParseResult *r = backends[s->parser->backend]->parse_finish(s); if(r) r->bit_length = s->pos * 8 + s->bit_offset; -- GitLab