Bug 10033 - dangerous query in _koha_modify_item
authorFridolyn SOMERS <fridolyn.somers@biblibre.com>
Fri, 12 Apr 2013 15:24:17 +0000 (17:24 +0200)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Wed, 1 May 2013 12:17:03 +0000 (08:17 -0400)
The SQL query build in C4::Items::_koha_modify_item performs an update on a row of items table identified by itemnumber.
Actually the query is build using a hash of datas :
    for my $key ( keys %$item ) {
        $query.="$key=?,";
        push @bind, $item->{$key};
    }
But this hash contains 'itemnumber' key, so you get an update including the primary key.
It is actually harmless but may be dangerous.

This patch simply skips itemnumber key in above loop.

Test plan :
Check you can create and modify items.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
C4/Items.pm

index 89b092b..d9c31f9 100644 (file)
@@ -2254,6 +2254,7 @@ sub _koha_modify_item {
     my $query = "UPDATE items SET ";
     my @bind;
     for my $key ( keys %$item ) {
+        next if ( $key eq 'itemnumber' );
         $query.="$key=?,";
         push @bind, $item->{$key};
     }