Avoid infinite loop if save point does not exist
Paul Mooney [Thu, 10 Mar 2016 10:50:57 +0000 (10:50 +0000)]
lib/DBIx/Class/Storage.pm

index 45839e1..4e9cdac 100644 (file)
@@ -433,7 +433,9 @@ sub svp_release {
     my @stack = @{ $self->savepoints };
     my $svp;
 
-    do { $svp = pop @stack } until $svp eq $name;
+    while (@stack and $stack[-1] ne $name) {
+      $svp = pop @stack
+    };
 
     $self->throw_exception ("Savepoint '$name' does not exist")
       unless $svp;