if ((ptr = fgets(linkname, MAXFILENAME, str)) == NULL) {
msyslog(LOG_ERR, "crypto_cert: no data %s\n",
filename);
+ (void)fclose(str);
return (NULL);
}
if ((ptr = strrchr(ptr, '.')) == NULL) {
msyslog(LOG_ERR, "crypto_cert: no filestamp %s\n",
filename);
+ (void)fclose(str);
return (NULL);
}
if (sscanf(++ptr, "%u", &fstamp) != 1) {
msyslog(LOG_ERR, "crypto_cert: invalid filestamp %s\n",
filename);
+ (void)fclose(str);
return (NULL);
}
if (!PEM_read(str, &name, &header, &data, &len)) {
msyslog(LOG_ERR, "crypto_cert %s\n",
ERR_error_string(ERR_get_error(), NULL));
+ (void)fclose(str);
return (NULL);
}
free(header);
name);
free(name);
free(data);
+ (void)fclose(str);
return (NULL);
}
free(name);
*/
ret = cert_parse(data, len, fstamp);
free(data);
+ (void)fclose(str);
if (ret == NULL)
return (NULL);