Michael Freidgeim wrote:
> Hi Mike,
>
> I am using Zoom.Net, and it took a long time before I
created Zoom-C application to reproduce the problem.
>
> Actually in C code I was not able to reproduce Access
Violation error, but addinfo shows incorrect value anyway,
which potentially can causes memory corruption.
> The test code returns:
> CQL transformation error (10012) Too many characters in
query (addinfo=H)
>
> instead of expected (addinfo=512)
>
> I've attached the sample code (if you want, it could be
added to zoom tests folder, because I didn't find any sample
code that calling ZOOM_query_cql2rpn).
>
> Let me know, if mailing list doesn't allow to read
attachments, and I will include it in the body of e-mail.
Your attachment went through fine, at least in my emailer.
The program exposed a bad reference. This is now fixed in
YAZ.
Thanks for taking the time to make a bug report with a
program showing
the problem.
/ Adam
>
> Regards,
> Michael Freidgeim
>
> -----Original Message-----
> Date: Tue, 2 Jan 2007 13:48:37 +0000
> From: Mike Taylor <mike indexdata.com>
> Subject: [Yazlist] Access Violation when returning CQL
transformation
> error Too many characters in query
> To: "Discussion on the YAZ Z39.50 toolkit"
> <yazlist lists.indexdata.dk>
> Message-ID: <17818.25269.401416.595791 localhost.localdomain>
> Content-Type: text/plain; charset=iso-8859-1
>
> Hi, Michael. It's not immediately obvious from reading
the code where the problem is. Please send a minimal ZOOM-C
application that demonstrates the problem, and I'll see what
I can do.
>
> Michael Freidgeim writes:
> > Hello,
> >
> > I am using function ZOOM_query_cql2rpn(ZOOM_query
s, const char *str, ZOOM_connection conn); to pass CQL query
> When I am passing relatively short query it works
fine.
> > However when I passed long query:
> > (proprty) and (bath.notes = proprty) and (TITLE =
proprty) and (AUTHOR = proprty) and (SUBJECT = proprty) and
(EDITOR = proprty) and (PUBLISHER = proprty) >
> > It failed, and when I am retrieving error from
connection(using
ZOOM_API(int)ZOOM_connection_error(ZOOM_connection c, const
char **cp,const char **addinfo) )
> > It returned cp: CQL transformation error (10012)
> addinfo: Too many characters in query
(addinfo=è...¨¨¨) > > and after this > An
unhandled exception of type
'System.AccessViolationException'.Additional information:
Attempted to read or write protected memory. This is often
an indication that other memory is corrupt.
> >
> > It seems that (addinfo=è...¨¨¨) is not set
up properly in ZOOM_query_cql2rpn, which causes the memory
corruption.
> > Note that yaz-client returns correct error
message > Can't convert CQL to PQF: Too many characters
in query (addinfo=512) > > How can I avoid Access
Violation and return meaningful error message ?
> >
> > Regards,
> > Michael Freidgeim
>
>
>
>
------------------------------------------------------------
------------
>
> _______________________________________________
> Yazlist mailing list
> Yazlist lists.indexdata.dk
> http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
_______________________________________________
Yazlist mailing list
Yazlist lists.indexdata.dk
http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yaz
list
|