svn commit: r360223 - head/contrib/sqlite3

Cy Schubert cy at FreeBSD.org
Thu Apr 23 14:08:41 UTC 2020


Author: cy
Date: Thu Apr 23 14:08:40 2020
New Revision: 360223
URL: https://svnweb.freebsd.org/changeset/base/360223

Log:
  Fix PowerPC segfault.
  
  The segfault fix was originally developed by our upstream, sqlite.org,
  to address S/390 and Sparc segfaults, both of which are big endian.
  Our PowerPC is also big endian, which this patch also fixes.
  
  Reported by:	Mark Millard <marklmi at yahoo.com>
  Tested by:	Mark Millard <marklmi at yahoo.com>
  Obtained from:	https://www.sqlite.org/src/vinfo/04885763c4cd00cb?diff=1
  		https://sqlite.org/forum/forumpost/672291a5b2
  MFC after:	1 month
  X-MFC with:	r360221, 360221

Modified:
  head/contrib/sqlite3/sqlite3.c

Modified: head/contrib/sqlite3/sqlite3.c
==============================================================================
--- head/contrib/sqlite3/sqlite3.c	Thu Apr 23 13:58:11 2020	(r360222)
+++ head/contrib/sqlite3/sqlite3.c	Thu Apr 23 14:08:40 2020	(r360223)
@@ -121302,12 +121302,14 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks(
             x = *sqlite3VdbeGetOp(v, addrConflictCk);
             if( x.opcode!=OP_IdxRowid ){
               int p2;      /* New P2 value for copied conflict check opcode */
+              const char *zP4;
               if( sqlite3OpcodeProperty[x.opcode]&OPFLG_JUMP ){
                 p2 = lblRecheckOk;
               }else{
                 p2 = x.p2;
               }
-              sqlite3VdbeAddOp4(v, x.opcode, x.p1, p2, x.p3, x.p4.z, x.p4type);
+              zP4 = x.p4type==P4_INT32 ? SQLITE_INT_TO_PTR(x.p4.i) : x.p4.z;
+              sqlite3VdbeAddOp4(v, x.opcode, x.p1, p2, x.p3, zP4, x.p4type);
               sqlite3VdbeChangeP5(v, x.p5);
               VdbeCoverageIf(v, p2!=x.p2);
             }


More information about the svn-src-all mailing list