Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a problem in zipfile.c found by -fsanitize. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
4fe697fa6c2b45aec60c33eff1ce2ea9 |
User & Date: | dan 2018-01-09 07:16:51.597 |
Context
2018-01-09
| ||
10:29 | Fix a zipfile problem with adding new directories to an archive. (check-in: 5fed67033c user: dan tags: trunk) | |
07:16 | Fix a problem in zipfile.c found by -fsanitize. (check-in: 4fe697fa6c user: dan tags: trunk) | |
02:27 | Avoid a compiler warning when building with newer versions of MinGW (check-in: cba0206a15 user: drh tags: trunk) | |
Changes
Changes to ext/misc/zipfile.c.
︙ | ︙ | |||
1148 1149 1150 1151 1152 1153 1154 | if( rc==SQLITE_OK ){ rc = zipfileAppendData(pTab, pData, nData); } return rc; } | | | | | | 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 | if( rc==SQLITE_OK ){ rc = zipfileAppendData(pTab, pData, nData); } return rc; } static int zipfileGetMode(ZipfileTab *pTab, sqlite3_value *pVal, u32 *pMode){ const char *z = (const char*)sqlite3_value_text(pVal); u32 mode = 0; if( z==0 ){ mode = S_IFREG + 0644; /* -rw-r--r-- */ }else if( z[0]>=0 && z[0]<=9 ){ mode = (unsigned int)sqlite3_value_int(pVal); }else{ const char zTemplate[11] = "-rwxrwxrwx"; int i; if( strlen(z)!=10 ) goto parse_error; switch( z[0] ){ case '-': mode |= S_IFREG; break; case 'd': mode |= S_IFDIR; break; |
︙ | ︙ | |||
1193 1194 1195 1196 1197 1198 1199 | sqlite3_value **apVal, sqlite_int64 *pRowid ){ ZipfileTab *pTab = (ZipfileTab*)pVtab; int rc = SQLITE_OK; /* Return Code */ ZipfileEntry *pNew = 0; /* New in-memory CDS entry */ | | | 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 | sqlite3_value **apVal, sqlite_int64 *pRowid ){ ZipfileTab *pTab = (ZipfileTab*)pVtab; int rc = SQLITE_OK; /* Return Code */ ZipfileEntry *pNew = 0; /* New in-memory CDS entry */ u32 mode; /* Mode for new entry */ i64 mTime; /* Modification time for new entry */ i64 sz = 0; /* Uncompressed size */ const char *zPath; /* Path for new entry */ int nPath; /* strlen(zPath) */ const u8 *pData = 0; /* Pointer to buffer containing content */ int nData = 0; /* Size of pData buffer in bytes */ int iMethod = 0; /* Compression method for new entry */ |
︙ | ︙ |