]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Separate makefile targets for "dbfuzz2", "dbfuzz2-asan", and "dbfuzz2-msan".
authordrh <drh@noemail.net>
Fri, 11 Jan 2019 13:03:06 +0000 (13:03 +0000)
committerdrh <drh@noemail.net>
Fri, 11 Jan 2019 13:03:06 +0000 (13:03 +0000)
FossilOrigin-Name: ea119641a7edcd0e1ec14371d93e35f860971888bd98cb0019253358a2ef123b

Makefile.in
manifest
manifest.uuid
test/dbfuzz2.c

index 3d9a5665050bf5f125072038eb88d8c69c116f0a..4eec340b0f6df8faac6b0b56864b24d700d3771b 100644 (file)
@@ -682,12 +682,26 @@ DBFUZZ2_OPTS = \
   -DSQLITE_ENABLE_DBSTAT_VTAB \
   -DSQLITE_ENABLE_RTREE \
   -DSQLITE_ENABLE_FTS4 \
-  -DSQLITE_EANBLE_FTS5
+  -DSQLITE_ENABLE_FTS5
 
-dbfuzz2:       $(TOP)/test/dbfuzz2.c sqlite3.c sqlite3.h
+dbfuzz2$(TEXE):        $(TOP)/test/dbfuzz2.c sqlite3.c sqlite3.h
+       $(CC) $(OPT_FEATURE_FLAGS) $(OPTS) -I. -g -O0 \
+               -DSTANDALONE -o dbfuzz2 \
+               $(DBFUZZ2_OPTS) $(TOP)/test/dbfuzz2.c sqlite3.c $(TLIBS)
+       mkdir -p dbfuzz2-dir
+       cp $(TOP)/test/dbfuzz2-seed* dbfuzz2-dir
+
+dbfuzz2-asan:  $(TOP)/test/dbfuzz2.c sqlite3.c sqlite3.h
+       clang-6.0 $(OPT_FEATURE_FLAGS) $(OPTS) -I. -g -O0 \
+               -fsanitize=fuzzer,undefined,address -o dbfuzz2-asan \
+               $(DBFUZZ2_OPTS) $(TOP)/test/dbfuzz2.c sqlite3.c $(TLIBS)
+       mkdir -p dbfuzz2-dir
+       cp $(TOP)/test/dbfuzz2-seed* dbfuzz2-dir
+
+dbfuzz2-msan:  $(TOP)/test/dbfuzz2.c sqlite3.c sqlite3.h
        clang-6.0 $(OPT_FEATURE_FLAGS) $(OPTS) -I. -g -O0 \
-               -fsanitize=fuzzer,undefined,address -o dbfuzz2 \
-               $(DBFUZZ2_OPTS) $(TOP)/test/dbfuzz2.c sqlite3.c
+               -fsanitize=fuzzer,undefined,memory -o dbfuzz2-msan \
+               $(DBFUZZ2_OPTS) $(TOP)/test/dbfuzz2.c sqlite3.c $(TLIBS)
        mkdir -p dbfuzz2-dir
        cp $(TOP)/test/dbfuzz2-seed* dbfuzz2-dir
 
index a953760970c4b413ba0b8dcf9e2c103caab7c46e..aea19fe24776429eb8187e18b40ad9cf9a1f0cbf 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,8 @@
-C Fix\sa\smemory\sleak\sin\sfts5\sthat\scould\soccur\sif\sscalar\sfunction\sfts5_decode()\nwas\spassed\sa\scorrupt\srecord.
-D 2019-01-10T19:26:52.167
+C Separate\smakefile\stargets\sfor\s"dbfuzz2",\s"dbfuzz2-asan",\sand\s"dbfuzz2-msan".
+D 2019-01-11T13:03:06.705
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
-F Makefile.in d8b254f8bb81bab43c340d70d17dc3babab40fcc8a348c8255881f780a45fee6
+F Makefile.in 45a3fef4d325ac0220c2172aeec4e4321da351f073f3b8e8ddea655f49ef6f2b
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 3c4c7e94419ff28cb68850188c9d153b343aed4c5ebed5965426232ed67ff9d9
 F README.md 377233394b905d3b2e2b33741289e093bc93f2e7adbe00923b2c5958c9a9edee
@@ -780,7 +780,7 @@ F test/date2.test 74c234bece1b016e94dd4ef9c8cc7a199a8806c0e2291cab7ba64bace6350b
 F test/dbfuzz.c 73047c920d6210e5912c87cdffd9a1c281d4252e
 F test/dbfuzz001.test 5659cbbc01e38678c119c8a58071cac59d0d6c71837a385f3d1838012f12e1e1
 F test/dbfuzz2-seed1.db e6225c6f3d7b63f9c5b6867146a5f329d997ab105bee64644dc2b3a2f2aebaee
-F test/dbfuzz2.c b8ed9b32a1f287505e55970e55203bedcb9170f137ecefa2254033c9faccdfba
+F test/dbfuzz2.c e89fbe07f8188ff0b9a2cb5c742af23a69f81a0d101d0c104151e3459508ebf3
 F test/dbpage.test 650234ba683b9d82b899c6c51439819787e7609f17a0cc40e0080a7b6443bc38
 F test/dbstatus.test cd83aa623b8aab477269bc94cf8aa90c1e195a144561dd04a1620770aaa8524e
 F test/dbstatus2.test f5fe0afed3fa45e57cfa70d1147606c20d2ba23feac78e9a172f2fe8ab5b78ef
@@ -1797,7 +1797,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P ff3b011f17f4f02e486f3c8de607f62eddf3b86562e2df82dba57ea166994b65
-R b33ddb6eb6b1e8d7beda0d7f4cf1c6ff
-U dan
-Z 93525fbb63cb2b21b9f3ec0fe983cfac
+P 240f1c0c92cad8a1c19438b38489aedb831f62a4603c53f22367e876d8f644ff
+R 97cd1020543aae6c3b535334385150bf
+U drh
+Z dd51adc1b571f184664beeec5f4ba112
index 159c366cfd8ac9566fc3183f324e484c659825ec..5a6181fd641e550fd7cb7d38b2f42293c6faecd0 100644 (file)
@@ -1 +1 @@
-240f1c0c92cad8a1c19438b38489aedb831f62a4603c53f22367e876d8f644ff
\ No newline at end of file
+ea119641a7edcd0e1ec14371d93e35f860971888bd98cb0019253358a2ef123b
\ No newline at end of file
index 9e3aca25274b4d5a3d20f8139f3a624b820bd82e..b71561b2e587b7c291faebf3915b88c6bd0bad14 100644 (file)
@@ -137,3 +137,49 @@ int LLVMFuzzerInitialize(int *pArgc, char ***pArgv){
   *pArgc = j;
   return 0;
 }
+
+#ifdef STANDALONE
+/*
+** Read an entire file into memory.  Space to hold the file comes
+** from malloc().
+*/
+static unsigned char *readFile(const char *zName, int *pnByte){
+  FILE *in = fopen(zName, "rb");
+  long nIn;
+  size_t nRead;
+  unsigned char *pBuf;
+  if( in==0 ) return 0;
+  fseek(in, 0, SEEK_END);
+  nIn = ftell(in);
+  rewind(in);
+  pBuf = malloc( nIn+1 );
+  if( pBuf==0 ){ fclose(in); return 0; }
+  nRead = fread(pBuf, nIn, 1, in);
+  fclose(in);
+  if( nRead!=1 ){
+    free(pBuf);
+    return 0;
+  }
+  pBuf[nIn] = 0;
+  if( pnByte ) *pnByte = nIn;
+  return pBuf;
+}
+#endif /* STANDALONE */
+
+#ifdef STANDALONE
+int main(int argc, char **argv){
+  int i;
+  int prevAmt = -1;
+  LLVMFuzzerInitialize(&argc, &argv);
+  for(i=1; i<argc; i++){
+    unsigned char *pIn;
+    int nIn;
+    pIn = readFile(argv[i], &nIn);
+    if( pIn ){
+      LLVMFuzzerTestOneInput((const uint8_t*)pIn, (size_t)nIn);
+      free(pIn);
+    }
+  }
+  return 0;
+}
+#endif /*STANDALONE*/