[1854] in Moira Commits
/svn/moira r4000 - trunk/moira/clients/moira
daemon@ATHENA.MIT.EDU (Garry Zacheiss)
Mon Apr 12 16:43:02 2010
Date: Mon, 12 Apr 2010 16:42:56 -0400
From: Garry Zacheiss <zacheiss@MIT.EDU>
Message-Id: <201004122042.o3CKguAS020159@drugstore.mit.edu>
To: moira-commits@MIT.EDU
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Author: zacheiss
Date: 2010-04-12 16:42:56 -0400 (Mon, 12 Apr 2010)
New Revision: 4000
Modified:
trunk/moira/clients/moira/cluster.c
Log:
Alas, static buffer, we hardly knew ye.
Modified: trunk/moira/clients/moira/cluster.c
===================================================================
--- trunk/moira/clients/moira/cluster.c 2010-04-12 19:24:03 UTC (rev 3999)
+++ trunk/moira/clients/moira/cluster.c 2010-04-12 20:42:56 UTC (rev 4000)
@@ -217,20 +217,28 @@
/* -------------------- General Functions -------------------- */
-static char aliasbuf[BUFSIZ * 2];
+char *aliases = NULL;
void PrintAliases(char **info)
{
- if (strlen(aliasbuf) == 0)
- sprintf(aliasbuf, "Aliases: %s", info[0]);
+ if (aliases == NULL)
+ {
+ aliases = malloc((strlen("Aliases: ") + strlen(info[0]) + 1));
+ if (!aliases)
+ {
+ com_err(program_name, 0, "Out of memory allocating host aliases");
+ exit(1);
+ }
+ sprintf(aliases, "Aliases: %s", info[0]);
+ }
else
{
- strcat(aliasbuf, ", ");
- strcat(aliasbuf, info[0]);
+ aliases = realloc(aliases, strlen(aliases) + strlen(info[0]) + 3);
+ strcat(aliases, ", ");
+ strcat(aliases, info[0]);
}
}
-
/* Function Name: PrintMachInfo
* Description: This function Prints out the Machine info in
* a coherent form.
@@ -257,10 +265,11 @@
}
else
{
- aliasbuf[0] = 0;
Loop(QueueTop(elem), (void (*)(char **)) PrintAliases);
FreeQueue(elem);
- Put_message(aliasbuf);
+ Put_message(aliases);
+ free(aliases);
+ aliases = NULL;
}
sprintf(tbuf, "%s %s", info[M_OWNER_TYPE],
strcmp(info[M_OWNER_TYPE], "NONE") ? info[M_OWNER_NAME] : "");