Commit 03544b3a authored by Ulrich Sibiller's avatar Ulrich Sibiller Committed by Mike Gabriel

Error.c: make nxagentClientsLogName a pointer

no more hardcoded string length
parent 2a4af0c7
......@@ -1296,7 +1296,17 @@ static void nxagentParseSingleOption(char *name, char *value)
}
else if (strcmp(name, "clients") == 0)
{
snprintf(nxagentClientsLogName, NXAGENTCLIENTSLOGNAMELENGTH, "%s", value);
char *new = strdup(value);
if (new)
{
SAFE_free(nxagentClientsLogName);
nxagentClientsLogName = new;
}
else
{
fprintf(stderr, "Warning: Ignoring option [%s] because of memory problems\n",
validateString(name));
}
return;
}
else if (strcmp(name, "client") == 0)
......
......@@ -79,7 +79,7 @@ static int nxagentClientsLog = -1;
* Clients log file name.
*/
char nxagentClientsLogName[NXAGENTCLIENTSLOGNAMELENGTH] = { 0 };
char *nxagentClientsLogName = NULL;
/*
* User's home.
......@@ -250,12 +250,12 @@ int nxagentExitHandler(const char *message)
void nxagentOpenClientsLogFile(void)
{
if (*nxagentClientsLogName == '\0')
if (!nxagentClientsLogName)
{
nxagentGetClientsPath();
}
if (nxagentClientsLogName != NULL && *nxagentClientsLogName != '\0')
if (nxagentClientsLogName && *nxagentClientsLogName != '\0')
{
nxagentClientsLog = open(nxagentClientsLogName, O_RDWR | O_CREAT | O_APPEND, 0600);
......@@ -553,7 +553,7 @@ char *nxagentGetSessionPath(void)
void nxagentGetClientsPath(void)
{
if (*nxagentClientsLogName == '\0')
if (!nxagentClientsLogName)
{
char *sessionPath = nxagentGetSessionPath();
......@@ -562,16 +562,17 @@ void nxagentGetClientsPath(void)
return;
}
if (strlen(sessionPath) + strlen("/clients") > NXAGENTCLIENTSLOGNAMELENGTH - 1)
/* FIXME: this is currently never freed as it is thought to last
over the complete runtime. We should add a free call at shutdown
eventually... */
int len = asprintf(&nxagentClientsLogName, "%s/clients", sessionPath);
if (len == -1)
{
#ifdef PANIC
fprintf(stderr, "nxagentGetClientsPath: PANIC! Invalid value for the NX clients Log File Path ''.\n");
fprintf(stderr, "%s: PANIC! Could not alloc NX clients Log File Path.\n", __func__);
#endif
return;
}
snprintf(nxagentClientsLogName, NXAGENTCLIENTSLOGNAMELENGTH, "%s/clients", sessionPath);
}
return;
......
......@@ -30,8 +30,7 @@
* Clients log file name.
*/
#define NXAGENTCLIENTSLOGNAMELENGTH 256
extern char nxagentClientsLogName[NXAGENTCLIENTSLOGNAMELENGTH];
extern char *nxagentClientsLogName;
extern char nxagentVerbose;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment