From 1b94727871a374f665c8f7682c0cb26b94014cc2 Mon Sep 17 00:00:00 2001 From: Al Date: Mon, 21 Mar 2016 18:04:26 -0400 Subject: [PATCH] [fix] Check that parser is loaded in parse_address, log and return NULL instead of segfaulting --- src/address_parser.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/address_parser.c b/src/address_parser.c index 0baa5055..db486410 100644 --- a/src/address_parser.c +++ b/src/address_parser.c @@ -803,13 +803,18 @@ address_parser_response_t *address_parser_response_new(void) { address_parser_response_t *address_parser_parse(char *address, char *language, char *country, address_parser_context_t *context) { if (address == NULL || context == NULL) return NULL; + address_parser_t *parser = get_address_parser(); + if (parser == NULL) { + log_error("parser is not setup, call libpostal_setup_address_parser()\n"); + return NULL; + } + char *normalized = address_parser_normalize_string(address); bool is_normalized = normalized != NULL; if (!is_normalized) { normalized = address; } - address_parser_t *parser = get_address_parser(); averaged_perceptron_t *model = parser->model; token_array *tokens = tokenize(normalized);