Certain cstore calls (direct / json_query) that support limit/offset
params called with a non-string / non-numeric value
e.g. { "limit": null }
result in a cstore segfault as it tries to call atoi(NULL) under the
covers. This patch prevents this by verifying that the limit/offset
values are actual strings or numbers (i.e. return a value from
jsonObjectGetString) and not JSON_NULL, etc.
Signed-off-by: Bill Erickson <email address hidden>
Signed-off-by: Dan Scott <email address hidden>
The basic_holdings Supercat method filtered out deleted call numbers and
copies, but didn't filter out copies based on the OPAC visibility status
of copy location / status / the copy itself. This has undesired results
when third-party services request copies via SRU or Z39.50 and expose
copies that should not be visible to the public.
We wrap all of the visibility and deletedness checks for a given copy up
into a subroutine so that we can avoid repeating ourselves in the
basic_holdings logic. Also, if we missed a test, we can add it in one
handy place :)
(Thanks to Galen Charlton for finding two missing tests: circ lib
visibility and owning lib visibility!)
Signed-off-by: Dan Scott <email address hidden>
Signed-off-by: Art Rhyno <email address hidden>
While the deprecated MARC::Record::add_fields() method allows you to add
a list of fields using a list object, append_fields() requires
MARC::Field objects.
Signed-off-by: Dan Scott <email address hidden>
Signed-off-by: Thomas Berezansky <email address hidden>