AOF & RDB: be compatible with rdbchecksum no

This commit is contained in:
zhaozhao.zz
2018-05-08 19:22:13 +08:00
committed by antirez
parent 4630da375c
commit eafaf17269

View File

@ -1649,10 +1649,11 @@ int rdbLoadRio(rio *rdb, rdbSaveInfo *rsi) {
decrRefCount(key); decrRefCount(key);
} }
/* Verify the checksum if RDB version is >= 5 */ /* Verify the checksum if RDB version is >= 5 */
if (rdbver >= 5 && server.rdb_checksum) { if (rdbver >= 5) {
uint64_t cksum, expected = rdb->cksum; uint64_t cksum, expected = rdb->cksum;
if (rioRead(rdb,&cksum,8) == 0) goto eoferr; if (rioRead(rdb,&cksum,8) == 0) goto eoferr;
if (server.rdb_checksum) {
memrev64ifbe(&cksum); memrev64ifbe(&cksum);
if (cksum == 0) { if (cksum == 0) {
serverLog(LL_WARNING,"RDB file was saved with checksum disabled: no check performed."); serverLog(LL_WARNING,"RDB file was saved with checksum disabled: no check performed.");
@ -1661,6 +1662,7 @@ int rdbLoadRio(rio *rdb, rdbSaveInfo *rsi) {
rdbExitReportCorruptRDB("RDB CRC error"); rdbExitReportCorruptRDB("RDB CRC error");
} }
} }
}
return C_OK; return C_OK;
eoferr: /* unexpected end of file is handled here with a fatal exit */ eoferr: /* unexpected end of file is handled here with a fatal exit */