Hello,

Using VFS and sqlite3_uri_parameter, it appears that it ends with an Access
Violation.

Looking a bit more closely to the code of this function:

SQLITE_API const char *sqlite3_uri_parameter(const char *zFilename, const
char *zParam){
  if( zFilename==0 ) return 0;
  zFilename += sqlite3Strlen30(zFilename) + 1;
  while( zFilename[0] ){
    int x = strcmp(zFilename, zParam);
    zFilename += sqlite3Strlen30(zFilename) + 1;
    if( x==0 ) return zFilename;
    zFilename += sqlite3Strlen30(zFilename) + 1;
  }
  return 0;
}

It appears that, if i understand well, it is expecting a series a
null-terminated strings. I don't know if our issue comes from the zFilename
not properly formatted: we have filename0filename00

The first   "zFilename += sqlite3Strlen30(zFilename) + 1;" consumes the
first filename.
Then, it expects pairs of arg and values (?).

In our case, algorithm goes one char too far.

Except if you add a line just before the third "zFilename +=
sqlite3Strlen30(zFilename) + 1;"
if (zFilename[0] == 0) break;

Is it an issue in the function, or is it coming from the zFilename input?

Thanks,

  Ronan
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to