From 2ec88532ad9c0443d1401120b6195e8d2f0860e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Oudot?= Date: Tue, 29 Aug 2017 14:04:40 +0000 Subject: [PATCH] Catch DBI execution error (#1263) --- .../lib/Lemonldap/NG/Common/Conf/Backends/CDBI.pm | 4 +++- .../lib/Lemonldap/NG/Common/Conf/Backends/RDBI.pm | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Backends/CDBI.pm b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Backends/CDBI.pm index f24836b81..0e82a7260 100644 --- a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Backends/CDBI.pm +++ b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Backends/CDBI.pm @@ -28,7 +28,9 @@ sub store { $self->logError; return UNKNOWN_ERROR; } - unless ( $req->execute( $fields, $cfgNum ) ) { + my $execute; + eval { $execute = $req->execute( $fields, $cfgNum ); }; + unless ($execute) { $self->logError; return UNKNOWN_ERROR; } diff --git a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Backends/RDBI.pm b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Backends/RDBI.pm index 5de127af1..f5c5c100a 100644 --- a/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Backends/RDBI.pm +++ b/lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Backends/RDBI.pm @@ -38,7 +38,9 @@ sub store { @execValues = ( $k, $v, $cfgNum, $k ); } else { @execValues = ( $cfgNum, $k, $v ); } - unless ( $req->execute(@execValues) ) { + my $execute; + eval { $execute = $req->execute(@execValues); }; + unless ($execute) { $self->logError; $self->_dbh->do("ROLLBACK"); return UNKNOWN_ERROR;