Patch directly applied from http://codereview.chromium.org/10387026/ Patch Set 2. Upstream patch author: Evangelos Foutras <evange...@foutrelis.com>
Remove this patch when upstream is fixed. The use of g++ 4.7 by Debian seems to make the crashes more frequent than on upstream's pre-4.6 gcc. --- debian/patches/series | 2 +- debian/patches/sqlite.patch | 28 ----- ...thirdparty-sqlite-invalid-stack-reference.patch | 119 ++++++++++++++++++++ 3 files changed, 120 insertions(+), 29 deletions(-) delete mode 100644 debian/patches/sqlite.patch create mode 100644 debian/patches/thirdparty-sqlite-invalid-stack-reference.patch diff --git a/debian/patches/series b/debian/patches/series index 311b071..064a03d 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -22,4 +22,4 @@ arm-no-float-abi.patch vpx.patch pulseaudio.patch gcc4.7.patch -sqlite.patch +thirdparty-sqlite-invalid-stack-reference.patch diff --git a/debian/patches/sqlite.patch b/debian/patches/sqlite.patch deleted file mode 100644 index 95abf36..0000000 --- a/debian/patches/sqlite.patch +++ /dev/null @@ -1,28 +0,0 @@ -Index: sid/src/third_party/sqlite/src/ext/fts3/fts3_write.c -=================================================================== ---- sid.orig/src/third_party/sqlite/src/ext/fts3/fts3_write.c 2012-05-19 16:54:33.000000000 +0200 -+++ sid/src/third_party/sqlite/src/ext/fts3/fts3_write.c 2012-06-11 16:16:11.607585285 +0200 -@@ -1238,13 +1238,13 @@ - Fts3SegReader **ppReader /* OUT: SegReader for pending-terms */ - ){ - Fts3SegReader *pReader = 0; /* Fts3SegReader object to return */ -+ Fts3HashElem *pE; /* Iterator variable */ - Fts3HashElem **aElem = 0; /* Array of term hash entries to scan */ - int nElem = 0; /* Size of array at aElem */ - int rc = SQLITE_OK; /* Return Code */ - - if( isPrefix ){ - int nAlloc = 0; /* Size of allocated array at aElem */ -- Fts3HashElem *pE = 0; /* Iterator variable */ - - for(pE=fts3HashFirst(&p->pendingTerms); pE; pE=fts3HashNext(pE)){ - char *zKey = (char *)fts3HashKey(pE); -@@ -1276,7 +1276,7 @@ - } - - }else{ -- Fts3HashElem *pE = fts3HashFindElem(&p->pendingTerms, zTerm, nTerm); -+ pE = fts3HashFindElem(&p->pendingTerms, zTerm, nTerm); - if( pE ){ - aElem = &pE; - nElem = 1; diff --git a/debian/patches/thirdparty-sqlite-invalid-stack-reference.patch b/debian/patches/thirdparty-sqlite-invalid-stack-reference.patch new file mode 100644 index 0000000..ffabfaf --- /dev/null +++ b/debian/patches/thirdparty-sqlite-invalid-stack-reference.patch @@ -0,0 +1,119 @@ +Fix Chromium's third_party/sqlite deferencing an out-of-scope pointer. + +Patch applied from http://codereview.chromium.org/10387026/ Patch Set 2. +Index: chromium-browser-20.0.1132.21~r139451/src/AUTHORS +=================================================================== +--- chromium-browser-20.0.1132.21~r139451.orig/src/AUTHORS 2012-06-10 20:55:50.534940299 -0700 ++++ chromium-browser-20.0.1132.21~r139451/src/AUTHORS 2012-06-10 20:55:54.721607126 -0700 +@@ -177,3 +177,4 @@ + Alexandre Abreu <wiss1...@gmail.com> + Erik Sjölund <erik.sjol...@gmail.com> + Simon Arlott <simon.arl...@gmail.com> ++Evangelos Foutras <evange...@foutrelis.com> +Index: chromium-browser-20.0.1132.21~r139451/src/third_party/sqlite/README.chromium +=================================================================== +--- chromium-browser-20.0.1132.21~r139451.orig/src/third_party/sqlite/README.chromium 2012-06-10 20:55:50.534940299 -0700 ++++ chromium-browser-20.0.1132.21~r139451/src/third_party/sqlite/README.chromium 2012-06-10 20:55:54.721607126 -0700 +@@ -70,6 +70,7 @@ + test.patch + mac_time_machine.patch + system-sqlite.patch ++sqlite-3.7.6.3-fix-out-of-scope-memory-reference.patch + + So, e.g. you could do this to apply all our patches to vanilla SQLite: + +@@ -84,6 +85,7 @@ + patch -p0 < ../sqlite/test.patch + patch -p0 < ../sqlite/mac_time_machine.patch + patch -p0 < ../sqlite/system-sqlite.patch ++patch -p0 < ../sqlite/sqlite-3.7.6.3-fix-out-of-scope-memory-reference.patch + + This will only be the case if all changes we make also update the corresponding + patch files. Therefore please remember to do that whenever you make a change! +Index: chromium-browser-20.0.1132.21~r139451/src/third_party/sqlite/amalgamation/sqlite3.c +=================================================================== +--- chromium-browser-20.0.1132.21~r139451.orig/src/third_party/sqlite/amalgamation/sqlite3.c 2012-06-10 20:55:50.534940299 -0700 ++++ chromium-browser-20.0.1132.21~r139451/src/third_party/sqlite/amalgamation/sqlite3.c 2012-06-10 20:55:54.734940460 -0700 +@@ -119149,13 +119149,13 @@ + Fts3SegReader **ppReader /* OUT: SegReader for pending-terms */ + ){ + Fts3SegReader *pReader = 0; /* Fts3SegReader object to return */ ++ Fts3HashElem *pE; /* Iterator variable */ + Fts3HashElem **aElem = 0; /* Array of term hash entries to scan */ + int nElem = 0; /* Size of array at aElem */ + int rc = SQLITE_OK; /* Return Code */ + + if( isPrefix ){ + int nAlloc = 0; /* Size of allocated array at aElem */ +- Fts3HashElem *pE = 0; /* Iterator variable */ + + for(pE=fts3HashFirst(&p->pendingTerms); pE; pE=fts3HashNext(pE)){ + char *zKey = (char *)fts3HashKey(pE); +@@ -119187,7 +119187,7 @@ + } + + }else{ +- Fts3HashElem *pE = fts3HashFindElem(&p->pendingTerms, zTerm, nTerm); ++ pE = fts3HashFindElem(&p->pendingTerms, zTerm, nTerm); + if( pE ){ + aElem = &pE; + nElem = 1; +Index: chromium-browser-20.0.1132.21~r139451/src/third_party/sqlite/src/ext/fts3/fts3_write.c +=================================================================== +--- chromium-browser-20.0.1132.21~r139451.orig/src/third_party/sqlite/src/ext/fts3/fts3_write.c 2012-06-10 20:55:50.534940299 -0700 ++++ chromium-browser-20.0.1132.21~r139451/src/third_party/sqlite/src/ext/fts3/fts3_write.c 2012-06-10 20:55:54.734940460 -0700 +@@ -1238,13 +1238,13 @@ + Fts3SegReader **ppReader /* OUT: SegReader for pending-terms */ + ){ + Fts3SegReader *pReader = 0; /* Fts3SegReader object to return */ ++ Fts3HashElem *pE; /* Iterator variable */ + Fts3HashElem **aElem = 0; /* Array of term hash entries to scan */ + int nElem = 0; /* Size of array at aElem */ + int rc = SQLITE_OK; /* Return Code */ + + if( isPrefix ){ + int nAlloc = 0; /* Size of allocated array at aElem */ +- Fts3HashElem *pE = 0; /* Iterator variable */ + + for(pE=fts3HashFirst(&p->pendingTerms); pE; pE=fts3HashNext(pE)){ + char *zKey = (char *)fts3HashKey(pE); +@@ -1276,7 +1276,7 @@ + } + + }else{ +- Fts3HashElem *pE = fts3HashFindElem(&p->pendingTerms, zTerm, nTerm); ++ pE = fts3HashFindElem(&p->pendingTerms, zTerm, nTerm); + if( pE ){ + aElem = &pE; + nElem = 1; +Index: chromium-browser-20.0.1132.21~r139451/src/third_party/sqlite/sqlite-3.7.6.3-fix-out-of-scope-memory-reference.patch +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ chromium-browser-20.0.1132.21~r139451/src/third_party/sqlite/sqlite-3.7.6.3-fix-out-of-scope-memory-reference.patch 2012-06-10 20:53:44.224936831 -0700 +@@ -0,0 +1,26 @@ ++--- ext/fts3/fts3_write.c.orig 2012-05-08 21:05:03.000000000 +0300 +++++ ext/fts3/fts3_write.c 2012-05-08 21:07:08.000000000 +0300 ++@@ -1238,13 +1238,13 @@ int sqlite3Fts3SegReaderPending( ++ Fts3SegReader **ppReader /* OUT: SegReader for pending-terms */ ++ ){ ++ Fts3SegReader *pReader = 0; /* Fts3SegReader object to return */ +++ Fts3HashElem *pE; /* Iterator variable */ ++ Fts3HashElem **aElem = 0; /* Array of term hash entries to scan */ ++ int nElem = 0; /* Size of array at aElem */ ++ int rc = SQLITE_OK; /* Return Code */ ++ ++ if( isPrefix ){ ++ int nAlloc = 0; /* Size of allocated array at aElem */ ++- Fts3HashElem *pE = 0; /* Iterator variable */ ++ ++ for(pE=fts3HashFirst(&p->pendingTerms); pE; pE=fts3HashNext(pE)){ ++ char *zKey = (char *)fts3HashKey(pE); ++@@ -1276,7 +1276,7 @@ int sqlite3Fts3SegReaderPending( ++ } ++ ++ }else{ ++- Fts3HashElem *pE = fts3HashFindElem(&p->pendingTerms, zTerm, nTerm); +++ pE = fts3HashFindElem(&p->pendingTerms, zTerm, nTerm); ++ if( pE ){ ++ aElem = &pE; ++ nElem = 1; -- 1.7.10 -- To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org