From 09ed2197df8567b1ae1b159785d4afc11d0320bc Mon Sep 17 00:00:00 2001 From: Maxime Besson Date: Tue, 7 Apr 2020 18:01:15 +0200 Subject: [PATCH] Config parser: fail if a "select"-type option does not contain a scalar --- lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm | 1 + .../lib/Lemonldap/NG/Manager/Build/Attributes.pm | 1 + 2 files changed, 2 insertions(+) diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm index 5174f76bc..bccb38b6c 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Attributes.pm @@ -224,6 +224,7 @@ m[^(?:(?:\-+\s*BEGIN\s+(?:PUBLIC\s+KEY|CERTIFICATE)\s*\-+\r?\n)?[a-zA-Z0-9/\+\r\ }, 'select' => { 'test' => sub { + return 0, 'Value is not a scalar' if ref $_[0]; my $test = grep( { $_ eq $_[0]; } map( { $_->{'k'}; } @{ $_[2]{'select'}; } ) ); return $test diff --git a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm index 9f8b09eff..fd92f63c8 100644 --- a/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm +++ b/lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/Attributes.pm @@ -116,6 +116,7 @@ sub types { }, select => { test => sub { + return ( 0, "Value is not a scalar" ) if ref( $_[0] ); my $test = grep ( { $_ eq $_[0] } map ( { $_->{k} } @{ $_[2]->{select} } ) ); return $test