diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2015-02-17 17:25:57 +0000 |
---|---|---|
committer | <> | 2015-03-17 16:26:24 +0000 |
commit | 780b92ada9afcf1d58085a83a0b9e6bc982203d1 (patch) | |
tree | 598f8b9fa431b228d29897e798de4ac0c1d3d970 /src/db/db_rec.c | |
parent | 7a2660ba9cc2dc03a69ddfcfd95369395cc87444 (diff) | |
download | berkeleydb-master.tar.gz |
Diffstat (limited to 'src/db/db_rec.c')
-rw-r--r-- | src/db/db_rec.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/db/db_rec.c b/src/db/db_rec.c index 8ba1124e..98b29b22 100644 --- a/src/db/db_rec.c +++ b/src/db/db_rec.c @@ -1,7 +1,7 @@ /*- * See the file LICENSE for redistribution information. * - * Copyright (c) 1996, 2012 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2015 Oracle and/or its affiliates. All rights reserved. * * $Id$ */ @@ -1194,8 +1194,9 @@ __db_pg_init_recover(env, dbtp, lsnp, op, info) DB_LSN copy_lsn; DB_MPOOLFILE *mpf; PAGE *pagep; - int cmp_n, cmp_p, ret, type; + int cmp_n, cmp_p, ret, t_ret, type; + pagep = NULL; ip = ((DB_TXNHEAD *)info)->thread_info; REC_PRINT(__db_pg_init_print); REC_INTRO(__db_pg_init_read, ip, 0); @@ -1247,11 +1248,12 @@ __db_pg_init_recover(env, dbtp, lsnp, op, info) memcpy((u_int8_t*)pagep + HOFFSET(pagep), argp->data.data, argp->data.size); } - if ((ret = __memp_fput(mpf, ip, pagep, file_dbp->priority)) != 0) - goto out; done: *lsnp = argp->prev_lsn; out: + if (pagep != NULL && (t_ret = + __memp_fput(mpf, ip, pagep, file_dbp->priority)) != 0 && ret == 0) + ret = t_ret; REC_CLOSE; } |