Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| SHA1 Hash: | 0cbc5d295c9911b00ed405d301a7b8e76db77b41 |
|---|---|
| Date: | 2010-03-10 17:18:42 |
| User: | drh |
| Comment: | Make sure the return value of db_text() is always something obtained from malloc() or else NULL. Strdup() the default value if the default value is used. |
Tags And Properties
- branch=trunk inherited from [a28c83647d]
- sym-trunk inherited from [a28c83647d]
Changes
Changes to src/db.c
500 ** of the result set as a string. Space to hold the string is 500 ** of the result set as a string. Space to hold the string is
501 ** obtained from malloc(). If the result set is empty, return 501 ** obtained from malloc(). If the result set is empty, return
502 ** zDefault instead. 502 ** zDefault instead.
503 */ 503 */
504 char *db_text(char *zDefault, const char *zSql, ...){ 504 char *db_text(char *zDefault, const char *zSql, ...){
505 va_list ap; 505 va_list ap;
506 Stmt s; 506 Stmt s;
507 char *z = zDefault; | 507 char *z;
508 va_start(ap, zSql); 508 va_start(ap, zSql);
509 db_vprepare(&s, zSql, ap); 509 db_vprepare(&s, zSql, ap);
510 va_end(ap); 510 va_end(ap);
511 if( db_step(&s)==SQLITE_ROW ){ 511 if( db_step(&s)==SQLITE_ROW ){
512 z = mprintf("%s", sqlite3_column_text(s.pStmt, 0)); 512 z = mprintf("%s", sqlite3_column_text(s.pStmt, 0));
> 513 }else if( zDefault ){
> 514 z = mprintf("%s", zDefault);
> 515 }else{
> 516 z = 0;
513 } 517 }
514 db_finalize(&s); 518 db_finalize(&s);
515 return z; 519 return z;
516 } 520 }
517 521
518 /* 522 /*
519 ** Initialize a new database file with the given schema. If anything 523 ** Initialize a new database file with the given schema. If anything