Prevents marc and marcxml from being returned by the db by selecting
only columns that are used in the marc frameworks.
---
 C4/Items.pm |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/C4/Items.pm b/C4/Items.pm
index dd78f98..6421e66 100644
--- a/C4/Items.pm
+++ b/C4/Items.pm
@@ -1184,7 +1184,14 @@ If this is set, it is set to C<One Order>.
 sub GetItemsInfo {
     my ( $biblionumber, $type ) = @_;
     my $dbh   = C4::Context->dbh;
-    my $query = "SELECT *,items.notforloan as itemnotforloan
+    my $sthk = $dbh->prepare("SELECT DISTINCT kohafield FROM 
marc_subfield_structure WHERE kohafield IS NOT NULL AND kohafield <>''");
+    $sthk->execute;
+    my $fields =  $sthk->fetchall_arrayref ;
+    # FIXME : we want to exclude marc & marcxml, so we're selecting all fields 
that are linked in our frameworks
+    # see koha bug 2634.
+    # rudimentary injection protection with the grep below.  This is a 
temporary fix that needs to be  adressed more seriously.
+    my $kohafields = join ( ',', grep { $_ =~ 
/^biblio\.\w+$|^biblioitems\.\w+$|items\.\w+$/ } map { $_->[0] } @$fields);
+    my $query = "SELECT $kohafields, items.notforloan as itemnotforloan, 
itemtypes.*
                  FROM items 
                  LEFT JOIN biblio ON biblio.biblionumber = items.biblionumber
                  LEFT JOIN biblioitems ON biblioitems.biblioitemnumber = 
items.biblioitemnumber";
-- 
1.5.5.GIT

_______________________________________________
Koha-patches mailing list
[email protected]
http://lists.koha.org/mailman/listinfo/koha-patches

Reply via email to