I believe the function expects URIs of the general form (before separators are 
converted to Nuls) of file:filename?param1=value1&param2=v2 coverted into file 
nul param1 nul value1 ... which means that the argument to this function is 
always expected to have an odd number of strings.  Your input has an even 
number.  However, it does seems wrong that a malformed URI should cause an 
access violation.  It does not appear that SQLite uses this function itself.

Peter


On Thursday, July 3, 2014 1:51 PM, Ronan Meneu <ronan.me...@gmail.com> wrote:
 

>
>
>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
>
>
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to