From 50271371b6b5cb580cfd6d05ef7208ccabccfe00 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Mon, 1 Mar 2021 15:39:38 +0100 Subject: data_template_new_from_string: Fail gracefully if fs/ss bad region lacks panel name Fixes CRYS-245 --- libcrystfel/src/datatemplate.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'libcrystfel/src') diff --git a/libcrystfel/src/datatemplate.c b/libcrystfel/src/datatemplate.c index 6712c280..63436fa4 100644 --- a/libcrystfel/src/datatemplate.c +++ b/libcrystfel/src/datatemplate.c @@ -1275,14 +1275,19 @@ DataTemplate *data_template_new_from_string(const char *string_in) } if ( dt->bad[i].is_fsss ) { - if ( lookup_panel(dt->bad[i].panel_name, dt, - &dt->bad[i].panel_number) ) - { - ERROR("No such panel '%s' for bad " - "region %s\n", - dt->bad[i].panel_name, + if ( dt->bad[i].panel_name == NULL ) { + + ERROR("Panel not specified for bad region '%s'\n", dt->bad[i].name); reject = 1; + + } else if ( lookup_panel(dt->bad[i].panel_name, dt, + &dt->bad[i].panel_number) ) + { + ERROR("No such panel '%s' for bad region %s\n", + dt->bad[i].panel_name, dt->bad[i].name); + reject = 1; + } else { struct panel_template *p; struct dt_badregion *bad; -- cgit v1.2.3