erec_print() unconditionally dereferences erec->locations->indesc, so make sure it is valid when either creating an erec or adding a location. Signed-off-by: Phil Sutter <phil@xxxxxx> --- src/erec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/erec.c b/src/erec.c index c550a596b38c8..5c3351a512464 100644 --- a/src/erec.c +++ b/src/erec.c @@ -38,7 +38,8 @@ void erec_add_location(struct error_record *erec, const struct location *loc) { assert(erec->num_locations < EREC_LOCATIONS_MAX); erec->locations[erec->num_locations] = *loc; - erec->locations[erec->num_locations].indesc = loc->indesc; + erec->locations[erec->num_locations].indesc = loc->indesc ? + : &internal_indesc; erec->num_locations++; } -- 2.28.0