[Yazlist] Re: Access Violation when returning CQL transformation
error "too many characters in query"
adam at indexdata.dk
Wed Mar 21 10:26:30 CET 2007
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
> Michael Freidgeim
> -----Original Message-----
> Date: Tue, 2 Jan 2007 13:48:37 +0000
> From: Mike Taylor <mike at 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 at lists.indexdata.dk>
> Message-ID: <17818.25269.401416.595791 at 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 at lists.indexdata.dk
More information about the Yazlist