aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel/src
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2021-03-01 15:39:38 +0100
committerThomas White <taw@physics.org>2021-03-01 15:40:00 +0100
commit50271371b6b5cb580cfd6d05ef7208ccabccfe00 (patch)
tree7742fec253ce7df3691029e16bc7756942335654 /libcrystfel/src
parent2b4584205040c6af9d5915103e938651d534b5d9 (diff)
data_template_new_from_string: Fail gracefully if fs/ss bad region lacks panel name
Fixes CRYS-245
Diffstat (limited to 'libcrystfel/src')
-rw-r--r--libcrystfel/src/datatemplate.c17
1 files changed, 11 insertions, 6 deletions
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;