diff options
Diffstat (limited to 'src/log/log_verify.c')
-rw-r--r-- | src/log/log_verify.c | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/src/log/log_verify.c b/src/log/log_verify.c index e7f8f688..2ed2f0f2 100644 --- a/src/log/log_verify.c +++ b/src/log/log_verify.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$ */ @@ -38,6 +38,12 @@ __log_verify_pp(dbenv, lvconfig) lsnrg = ret = timerg = 0; phome = NULL; + if (lvconfig == NULL) { + __db_errx(dbenv->env, DB_STR("2584", + "Must provide a configuration structure.")); + ret = EINVAL; + goto err; + } if (!IS_ZERO_LSN(lvconfig->start_lsn) || !IS_ZERO_LSN(lvconfig->end_lsn)) lsnrg = 1; @@ -64,7 +70,8 @@ __log_verify_pp(dbenv, lvconfig) } ENV_ENTER(dbenv->env, ip); - ret = __log_verify(dbenv, lvconfig, ip); + REPLICATION_WRAP(dbenv->env, + (__log_verify(dbenv, lvconfig, ip)), 0, ret); ENV_LEAVE(dbenv->env, ip); err: return (ret); } @@ -79,18 +86,16 @@ __log_verify(dbenv, lvconfig, ip) const DB_LOG_VERIFY_CONFIG *lvconfig; DB_THREAD_INFO *ip; { - - u_int32_t logcflag, max_fileno; + DB_LOG_VRFY_INFO *logvrfy_hdl; DB_LOGC *logc; - ENV *env; - DBT data; DB_DISTAB dtab; DB_LSN key, start, start2, stop, stop2, verslsn; - u_int32_t newversion, version; + DBT data; + ENV *env; + u_int32_t logcflag, max_fileno, newversion, version; int cmp, fwdscroll, goprev, ret, tret; time_t starttime, endtime; const char *okmsg; - DB_LOG_VRFY_INFO *logvrfy_hdl; okmsg = NULL; fwdscroll = 1; @@ -98,6 +103,7 @@ __log_verify(dbenv, lvconfig, ip) goprev = 0; env = dbenv->env; logc = NULL; + logvrfy_hdl = NULL; memset(&dtab, 0, sizeof(dtab)); memset(&data, 0, sizeof(data)); version = newversion = 0; @@ -333,11 +339,12 @@ out: err: if (logc != NULL) (void)__logc_close(logc); - if ((tret = __destroy_log_vrfy_info(logvrfy_hdl)) != 0 && ret == 0) + if (logvrfy_hdl != NULL && + (tret = __destroy_log_vrfy_info(logvrfy_hdl)) != 0 && ret == 0) ret = tret; - if (dtab.int_dispatch) + if (dtab.int_dispatch != NULL) __os_free(dbenv->env, dtab.int_dispatch); - if (dtab.ext_dispatch) + if (dtab.ext_dispatch != NULL) __os_free(dbenv->env, dtab.ext_dispatch); return (ret); |