@@ -656,11 +656,11 @@
656 656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
657 657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** [sqlite_version()] and [sqlite_source_id()].
658 658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
659 659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_VERSION "3.8.1"
660 660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SQLITE_VERSION_NUMBER 3008001
661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SQLITE_SOURCE_ID "2013-08-29 23:36:49 30d38cc44904d93508b87e373b2f45d5f93e556b"
661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SQLITE_SOURCE_ID "2013-08-30 06:20:23 d9c018f8155ab48df8e0e02519bba50588fe49fc"
662 662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
663 663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
664 664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CAPI3REF: Run-Time Library Version Numbers
665 665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** KEYWORDS: sqlite3_version, sqlite3_sourceid
666 666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -23594,35 +23594,10 @@
23594 23594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( aSyscall[i].pCurrent!=0 ) return aSyscall[i].zName;
23595 23595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
23596 23596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
23597 23597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
23598 23598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
23599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
23600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If fd is a file descriptor that would be dangerous to use for an
23601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ordinary file, the close it, reopen it as /dev/null to get it out
23602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** of the way, then return true.
23603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** If fd is safe, return 0.
23605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
23606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** It is dangerous to have a database file open of file descriptors 1 or
23607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** 2 because those normally mean standard output and standard error. Other
23608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** components of the system might write directly to those file descriptors
23609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** and overwrite parts of the database file. Something like this happened
23610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** on 2013-08-29 to the canonical Fossil repository when some error caused
23611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the database file to be opened on file descriptor 2 and later an assert()
23612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** fired and wrote error message text into file descriptor 2, corrupting
23613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the repository.
23614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
23615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static int isReservedFd(int fd, const char *z, int f, int m){
23616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( fd<0 || fd>2 ) return 0;
23617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_log(SQLITE_WARNING,
23618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "attempt to open \"%s\" as file descriptor %d", z, fd);
23619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- osClose(fd);
23620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (void)osOpen("/dev/null",f,m);
23621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 1;
23622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
23623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
23624 23599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
23625 23600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Invoke open(). Do so multiple times, until it either succeeds or
23626 23601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** fails for some reason other than EINTR.
23627 23602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
23628 23603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** If the file creation mode "m" is 0 then set it to the default for
@@ -23639,17 +23614,27 @@
23639 23614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** recover the hot journals.
23640 23615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
23641 23616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int robust_open(const char *z, int f, mode_t m){
23642 23617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int fd;
23643 23618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mode_t m2 = m ? m : SQLITE_DEFAULT_FILE_PERMISSIONS;
23644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- do{
23619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while(1){
23645 23620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if defined(O_CLOEXEC)
23646 23621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fd = osOpen(z,f|O_CLOEXEC,m2);
23647 23622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
23648 23623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fd = osOpen(z,f,m2);
23649 23624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
23650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }while( (fd<0 && errno==EINTR) || isReservedFd(fd,z,f,m2) );
23625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( fd<0 ){
23626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( errno==EINTR ) continue;
23627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
23628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
23629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( fd>2 ) break;
23630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ osClose(fd);
23631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_log(SQLITE_WARNING,
23632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "attempt to open \"%s\" as file descriptor %d", z, fd);
23633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fd = -1;
23634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( osOpen("/dev/null", f, m)<0 ) break;
23635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
23651 23636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( fd>=0 ){
23652 23637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( m!=0 ){
23653 23638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct stat statbuf;
23654 23639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( osFstat(fd, &statbuf)==0
23655 23640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& statbuf.st_size==0
23656 23641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!