File ep11.fix.config_dir.and.conf_name.handling.patch of Package openCryptoki.1904
diff -ur opencryptoki-vanilla/usr/lib/pkcs11/ep11_stdll/ep11_specific.c opencryptoki/usr/lib/pkcs11/ep11_stdll/ep11_specific.c
--- opencryptoki-vanilla/usr/lib/pkcs11/ep11_stdll/ep11_specific.c 2016-02-19 19:38:27.748458070 +0100
+++ opencryptoki/usr/lib/pkcs11/ep11_stdll/ep11_specific.c 2016-02-19 19:54:30.718458070 +0100
@@ -3764,18 +3764,21 @@
if (conf_name && strlen(conf_name) > 0) {
/* extract filename part from conf_name */
for (i=strlen(conf_name)-1; i >= 0 && conf_name[i] != '/'; i--);
- if (i < strlen(conf_name)-1) {
- snprintf(fname, sizeof(fname), "%s/%s", conf_dir, conf_name+i+1);
- fname[sizeof(fname)-1] = '\0';
- ap_fp = fopen(fname,"r");
- EP11TOK_LOG(2,"fopen('%s') failed with errno %d", fname, errno);
- }
+ snprintf(fname, sizeof(fname), "%s/%s", conf_dir, conf_name+i+1);
+ fname[sizeof(fname)-1] = '\0';
+ ap_fp = fopen(fname,"r");
+
+ if (!ap_fp)
+ EP11TOK_LOG(2, "fopen('%s') failed with errno %d",
+ fname, errno);
}
if (!ap_fp) {
snprintf(fname, sizeof(fname), "%s/%s", conf_dir, EP11_DEFAULT_CFG_FILE);
fname[sizeof(fname)-1] = '\0';
ap_fp = fopen(fname,"r");
- EP11TOK_LOG(2,"fopen('%s') failed with errno %d", fname, errno);
+ if (!ap_fp)
+ EP11TOK_LOG(2, "fopen('%s') failed with errno %d",
+ fname, errno);
}
} else {
if (conf_name && strlen(conf_name) > 0) {