Prevent sqlite from over-reading a structure

Our sqlite fork was reading past the end of the zP3 KeyInfo structure
here.  This was causing gcc and clang's address sanitization to alert.

FS-6279 --resolve

Thanks-to: Christopher Rienzo <chris@rienzo.net>
This commit is contained in:
Travis Cross 2014-02-27 23:19:26 +00:00
parent a048d2b638
commit 3366fe95b0

View File

@ -527,7 +527,7 @@ void sqlite3VdbeChangeP3(Vdbe *p, int addr, const char *zP3, int n){
pOp->p3 = (char*)pKeyInfo;
if( pKeyInfo ){
unsigned char *aSortOrder;
memcpy(pKeyInfo, zP3, nByte);
memcpy(pKeyInfo, zP3, nByte - nField);
aSortOrder = pKeyInfo->aSortOrder;
if( aSortOrder ){
pKeyInfo->aSortOrder = (unsigned char*)&pKeyInfo->aColl[nField];