Jira bug MAX-248 File descriptor leak in secrets key reading

This commit is contained in:
Mark Riddoch
2014-09-10 08:06:48 +01:00
parent 28921e0856
commit 344fcfa9ea

View File

@ -107,6 +107,7 @@ int len;
if (fstat(fd, &secret_stats) < 0) {
int eno = errno;
errno = 0;
close(fd);
LOGIF(LE, (skygw_log_write_flush(
LOGFILE_ERROR,
"Error : fstat for secret file %s "
@ -121,6 +122,7 @@ int len;
{
int eno = errno;
errno = 0;
close(fd);
LOGIF(LE, (skygw_log_write_flush(
LOGFILE_ERROR,
"Error : Secrets file %s has "
@ -132,6 +134,7 @@ int len;
}
if (secret_stats.st_mode != (S_IRUSR|S_IFREG))
{
close(fd);
LOGIF(LE, (skygw_log_write_flush(
LOGFILE_ERROR,
"Error : Ignoring secrets file "
@ -142,6 +145,7 @@ int len;
if ((keys = (MAXKEYS *)malloc(sizeof(MAXKEYS))) == NULL)
{
close(fd);
LOGIF(LE, (skygw_log_write_flush(
LOGFILE_ERROR,
"Error : Memory allocation failed "
@ -159,6 +163,7 @@ int len;
{
int eno = errno;
errno = 0;
close(fd);
free(keys);
LOGIF(LE, (skygw_log_write_flush(
LOGFILE_ERROR,
@ -274,7 +279,10 @@ int enlen;
keys = secrets_readKeys();
if (!keys)
return strdup(crypt);
/* If the input is not a HEX string return the input - it probably was not encrypted */
/*
** If the input is not a HEX string return the input
** it probably was not encrypted
*/
for (ptr = crypt; *ptr; ptr++)
{
if (!isxdigit(*ptr))