Update of /cvsroot/qmailadmin/qmailadmin
In directory sc8-pr-cvs1:/tmp/cvs-serv15368
Modified Files:
mailinglist.c
Log Message:
better handling of mailing list prefix value (strip brackets)
Index: mailinglist.c
===================================================================
RCS file: /cvsroot/qmailadmin/qmailadmin/mailinglist.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- mailinglist.c 10 Sep 2003 21:38:43 -0000 1.1.1.1
+++ mailinglist.c 12 Sep 2003 23:20:13 -0000 1.2
@@ -548,6 +548,12 @@
/* Check for prefix setting */
GetValue(TmpCGI, tmp, "prefix=", sizeof(tmp));
+ /* strip leading '[' and trailing ']' from tmp */
+ tmpstr = strchr (tmp, ']');
+ if (tmpstr != NULL) *tmpstr = '\0';
+ tmpstr = tmp;
+ while (*tmpstr == '[') tmpstr++;
+
/* Create (or delete) the file as appropriate */
sprintf(TmpBuf, "%s/%s/prefix", RealDir, ActionUser);
if (strlen(tmp) > 0)
@@ -555,7 +561,7 @@
file=fopen(TmpBuf , "w");
if (file)
{
- fprintf(file, "[%s]", tmp);
+ fprintf(file, "[%s]", tmpstr);
fclose(file);
}
}
@@ -1446,6 +1452,7 @@
int get_mailinglist_prefix(char* prefix)
{
char buffer[MAX_BUFF];
+ char *b, *p;
FILE* file;
sprintf(buffer, "%s/%s/prefix", RealDir, ActionUser);
@@ -1454,8 +1461,13 @@
if (file)
{
fgets(buffer, sizeof(buffer), file);
- strncpy(prefix, strstr(buffer, "[") + 1, strstr(buffer, "]") - strstr(buffer, "[") - 1);
fclose(file);
+
+ b = buffer;
+ p = prefix;
+ while (*b == '[') b++;
+ while ((*b != ']') && (*b != '\n') && (*b != '\0')) *p++ = *b++;
+ *p++ = '\0';
}
else
{
|