Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Prevent false-positive in fingerprint check, when the current checkout is empty. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
fd8816ecf6eeea11adb07e335419535c |
User & Date: | jan.nijtmans 2019-10-07 10:07:22 |
Original Comment: | Prevent fals-posivitive in fingerprint check, when the current checkout is empty. |
Context
2019-10-07
| ||
11:03 | Statement ordering: Don't read 'fingerprint' when there are no checkin's. ... (check-in: ffe7cc59 user: jan.nijtmans tags: trunk) | |
10:07 | Prevent false-positive in fingerprint check, when the current checkout is empty. ... (check-in: fd8816ec user: jan.nijtmans tags: trunk) | |
08:42 | Removed a duplicate entry from www/mkindex.tcl ... (check-in: 4edc1302 user: wyoung tags: trunk) | |
Changes
Changes to src/db.c.
︙ | ︙ | |||
4004 4005 4006 4007 4008 4009 4010 | ** Set the value of the "checkout" entry in the VVAR table. ** ** Also set "fingerprint" and "checkout-hash". */ void db_set_checkout(int rid){ char *z; db_lset_int("checkout", rid); | > | | | | | | > > > > > | 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 | ** Set the value of the "checkout" entry in the VVAR table. ** ** Also set "fingerprint" and "checkout-hash". */ void db_set_checkout(int rid){ char *z; db_lset_int("checkout", rid); if (rid != 0) { z = db_text(0,"SELECT uuid FROM blob WHERE rid=%d",rid); db_lset("checkout-hash", z); fossil_free(z); z = db_fingerprint(0, 1); db_lset("fingerprint", z); fossil_free(z); } } /* ** Verify that the fingerprint recorded in the "fingerprint" entry ** of the VVAR table matches the fingerprint on the currently ** connected repository. Return true if the fingerprint is ok, and ** return false if the fingerprint does not match. */ int db_fingerprint_ok(void){ char *zCkout; /* The fingerprint recorded in the checkout database */ char *zRepo; /* The fingerprint of the repository */ int rc; /* Result */ zCkout = db_text(0,"SELECT value FROM localdb.vvar WHERE name='fingerprint'"); if( !db_lget_int("checkout", 0) ){ /* We have an empty checkout, fingerprint is still NULL. */ return 2; } if( zCkout==0 ){ /* This is an older checkout that does not record a fingerprint. ** We have to assume everything is ok */ return 2; } zRepo = db_fingerprint(atoi(zCkout), 1); rc = fossil_strcmp(zCkout,zRepo)==0; |
︙ | ︙ |