summaryrefslogtreecommitdiffstats
path: root/nss_engine_vars.c
diff options
context:
space:
mode:
authorrcritten <>2008-01-03 21:35:28 +0000
committerrcritten <>2008-01-03 21:35:28 +0000
commit7793b9e0748c3fb24db42f3d4d6658561e58349e (patch)
tree83ba11c53224d35b257b375dc84970502c7b60c5 /nss_engine_vars.c
parent0c14c8a219244408ac4d4402a55d9c178fcf705c (diff)
downloadmod_nss-7793b9e0748c3fb24db42f3d4d6658561e58349e.tar.gz
mod_nss-7793b9e0748c3fb24db42f3d4d6658561e58349e.tar.xz
mod_nss-7793b9e0748c3fb24db42f3d4d6658561e58349e.zip
Resolves BZ 248722
See if the certificate has a version before trying to decode it into a CGI variable.
Diffstat (limited to 'nss_engine_vars.c')
-rw-r--r--nss_engine_vars.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/nss_engine_vars.c b/nss_engine_vars.c
index 1439a8b..b3dcf92 100644
--- a/nss_engine_vars.c
+++ b/nss_engine_vars.c
@@ -336,8 +336,13 @@ static char *nss_var_lookup_nss_cert(apr_pool_t *p, CERTCertificate *xs, char *v
resdup = TRUE;
if (strcEQ(var, "M_VERSION")) {
- result = apr_psprintf(p, "%lu", DER_GetInteger(&xs->version)+1);
- resdup = FALSE;
+ if (xs->version.data != NULL) {
+ result = apr_psprintf(p, "%lu", DER_GetInteger(&xs->version)+1);
+ resdup = FALSE;
+ } else {
+ result = apr_pstrdup(p, "UNKNOWN");
+ resdup = FALSE;
+ }
}
else if (strcEQ(var, "M_SERIAL")) {
result = apr_psprintf(p, "%lu", DER_GetInteger(&xs->serialNumber));