Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a bug in tool/mksourceid.c: The mksourceid.c program was incorrectly including the "# Remove this line" line of the Fossil-generated "manifest" file in the SHA3 hash. That means that all SQLITE_SOURCE_IDs for trunk versions going back to check-in [30966d56] (2017-08-22) are incorrect. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
65765222ef6f4e80c05a24994fcee145 |
User & Date: | drh 2017-09-21 10:24:10.329 |
Context
2017-09-21
| ||
13:11 | Fix a potential use of an uninitialized pointer in RTree following an OOM error. (check-in: fd4ec0cdbd user: drh tags: trunk) | |
10:24 | Fix a bug in tool/mksourceid.c: The mksourceid.c program was incorrectly including the "# Remove this line" line of the Fossil-generated "manifest" file in the SHA3 hash. That means that all SQLITE_SOURCE_IDs for trunk versions going back to check-in [30966d56] (2017-08-22) are incorrect. (check-in: 65765222ef user: drh tags: trunk) | |
01:04 | Revert one performance improvement changes from check-in [3b3e32d4cd07] as it was causing a reference to an uninitialized value. (check-in: f8b1c64d3e user: drh tags: trunk) | |
Changes
Changes to tool/mksourceid.c.
︙ | ︙ | |||
773 774 775 776 777 778 779 780 781 | int main(int argc, char **argv){ const char *zManifest = 0; int i; int bVerbose = 0; FILE *in; int allValid = 1; int rc; char zDate[50]; char zHash[100]; | > | | 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 | int main(int argc, char **argv){ const char *zManifest = 0; int i; int bVerbose = 0; FILE *in; int allValid = 1; int rc; SHA3Context ctx; char zDate[50]; char zHash[100]; char zLine[20000]; for(i=1; i<argc; i++){ const char *z = argv[i]; if( z[0]=='-' ){ if( z[1]=='-' ) z++; if( strcmp(z, "-v")==0 ){ bVerbose = 1; |
︙ | ︙ | |||
801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 | if( zManifest==0 ) usage(argv[0]); zDate[0] = 0; in = fopen(zManifest, "rb"); if( in==0 ){ fprintf(stderr, "cannot open \"%s\" for reading\n", zManifest); exit(1); } while( fgets(zLine, sizeof(zLine), in) ){ if( strncmp(zLine, "D 20", 4)==0 ){ memcpy(zDate, &zLine[2], 10); zDate[10] = ' '; memcpy(&zDate[11], &zLine[13], 8); zDate[19] = 0; continue; } if( strncmp(zLine, "F ", 2)==0 ){ char *zFilename = &zLine[2]; char *zMHash = nextToken(zFilename); nextToken(zMHash); if( strlen(zMHash)==40 ){ rc = sha1sum_file(zFilename, zHash); }else{ rc = sha3sum_file(zFilename, 256, zHash); } if( rc ){ allValid = 0; if( bVerbose ){ printf("hash failed: %s\n", zFilename); | > > > > < < < < | | 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 | if( zManifest==0 ) usage(argv[0]); zDate[0] = 0; in = fopen(zManifest, "rb"); if( in==0 ){ fprintf(stderr, "cannot open \"%s\" for reading\n", zManifest); exit(1); } SHA3Init(&ctx, 256); while( fgets(zLine, sizeof(zLine), in) ){ if( strncmp(zLine,"# Remove this line", 18)!=0 ){ SHA3Update(&ctx, (unsigned char*)zLine, (unsigned)strlen(zLine)); } if( strncmp(zLine, "D 20", 4)==0 ){ memcpy(zDate, &zLine[2], 10); zDate[10] = ' '; memcpy(&zDate[11], &zLine[13], 8); zDate[19] = 0; continue; } if( strncmp(zLine, "F ", 2)==0 ){ char *zFilename = &zLine[2]; char *zMHash = nextToken(zFilename); nextToken(zMHash); if( strlen(zMHash)==40 ){ rc = sha1sum_file(zFilename, zHash); }else{ rc = sha3sum_file(zFilename, 256, zHash); } if( rc ){ allValid = 0; if( bVerbose ){ printf("hash failed: %s\n", zFilename); } }else if( strcmp(zHash, zMHash)!=0 ){ allValid = 0; if( bVerbose ){ printf("wrong hash: %s\n", zFilename); printf("... expected: %s\n", zMHash); printf("... got: %s\n", zHash); } } } } fclose(in); DigestToBase16(SHA3Final(&ctx), zHash, 256/8); if( !allValid ){ printf("%s %.60salt1\n", zDate, zHash); }else{ printf("%s %s\n", zDate, zHash); } return 0; } |