$OpenBSD: patch-src_varstring_c,v 1.3 2004/10/01 21:22:15 sturm Exp $
--- src/varstring.c.orig	Wed Aug 11 23:07:05 2004
+++ src/varstring.c	Fri Oct  1 23:14:50 2004
@@ -353,7 +353,7 @@ for (sp = string; /* No exit */ ; sp++) 
       FatalError("Can't expand varstring");
       }
    
-   strcat(buffer,currentitem);
+   (void)strlcat(buffer,currentitem,CF_EXPANDSIZE);
    sp += strlen(currentitem);
 
    if (*sp == '$')
@@ -367,7 +367,7 @@ for (sp = string; /* No exit */ ; sp++) 
                    varstring = '}';
                    break;
          default: 
-                   strcat(buffer,"$");
+                   (void)strlcat(buffer,"$",CF_EXPANDSIZE);
                    continue;
          }
       sp++;
@@ -405,7 +405,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expand varstring");
                 }
-             strcat(buffer,VERSION);
+             (void)strlcat(buffer,VERSION,CF_EXPANDSIZE);
 	     break;
              
          case cffaculty:
@@ -419,7 +419,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expand varstring");
                 }
-             strcat(buffer,VFACULTY);
+             (void)strlcat(buffer,VFACULTY,CF_EXPANDSIZE);
              break;
              
              
@@ -430,7 +430,7 @@ for (sp = string; /* No exit */ ; sp++) 
                    {
                    FatalError("Can't expand varstring");
                    }
-                strcat(buffer,VDEFAULTBINSERVER.name);
+                (void)strlcat(buffer,VDEFAULTBINSERVER.name,CF_EXPANDSIZE);
                 }
              else
                 {
@@ -438,7 +438,7 @@ for (sp = string; /* No exit */ ; sp++) 
                    {
                    FatalError("Can't expand varstring");
                    }
-                strcat(buffer,VUQNAME);
+                (void)strlcat(buffer,VUQNAME,CF_EXPANDSIZE);
                 }
              break;
              
@@ -447,7 +447,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expand varstring");
                 }
-             strcat(buffer,VFQNAME);
+             (void)strlcat(buffer,VFQNAME,CF_EXPANDSIZE);
              break;
              
          case cfnetmask:
@@ -455,7 +455,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expand varstring");
                 }
-             strcat(buffer,VNETMASK);
+             (void)strlcat(buffer,VNETMASK,CF_EXPANDSIZE);
              break;
              
              
@@ -464,7 +464,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expand varstring");
                 }
-             strcat(buffer,VIPADDRESS);
+             (void)strlcat(buffer,VIPADDRESS,CF_EXPANDSIZE);
              break;
              
          case cfbinserver:
@@ -478,7 +478,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expand varstring");
                 }
-             strcat(buffer,"$(binserver)");
+             (void)strlcat(buffer,"$(binserver)",CF_EXPANDSIZE);
              break;
              
          case cfsysadm:
@@ -491,7 +491,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expand varstring");
                 }
-             strcat(buffer,VSYSADM);
+             (void)strlcat(buffer,VSYSADM,CF_EXPANDSIZE);
              break;
              
          case cfdomain:
@@ -504,7 +504,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expandvarstring");
                 }
-             strcat(buffer,ToLowerStr(VDOMAIN));
+             (void)strlcat(buffer,ToLowerStr(VDOMAIN),CF_EXPANDSIZE);
              break;
              
          case cfnfstype:
@@ -512,7 +512,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expandvarstring");
                 }
-             strcat(buffer,VNFSTYPE);
+             (void)strlcat(buffer,VNFSTYPE,CF_EXPANDSIZE);
              break;
              
          case cftimezone:
@@ -525,7 +525,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expandvarstring");
                 }
-             strcat(buffer,VTIMEZONE->name);
+             (void)strlcat(buffer,VTIMEZONE->name,CF_EXPANDSIZE);
              break;
              
          case cfclass:
@@ -533,7 +533,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expandvarstring");
                 }
-             strcat(buffer,CLASSTEXT[VSYSTEMHARDCLASS]);
+             (void)strlcat(buffer,CLASSTEXT[VSYSTEMHARDCLASS],CF_EXPANDSIZE);
              break;
              
          case cfarch:
@@ -541,7 +541,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expandvarstring");
                 }
-             strcat(buffer,VARCH);
+             (void)strlcat(buffer,VARCH,CF_EXPANDSIZE);
              break;
              
          case cfarch2:
@@ -549,7 +549,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expandvarstring");
                 }
-             strcat(buffer,VARCH2);
+             (void)strlcat(buffer,VARCH2,CF_EXPANDSIZE);
              break;
              
              
@@ -567,7 +567,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 }
              else
                 {
-                strcat(buffer,Space2Score(ctime(&tloc)));
+                (void)strlcat(buffer,Space2Score(ctime(&tloc)),CF_EXPANDSIZE);
                 Chop(buffer);
                 }
              
@@ -580,7 +580,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 }
              else
                 {
-                strcat(buffer,VYEAR);
+                (void)strlcat(buffer,VYEAR,CF_EXPANDSIZE);
                 }
              break;
              
@@ -591,7 +591,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 }
              else
                 {
-                strcat(buffer,VMONTH);
+                (void)strlcat(buffer,VMONTH,CF_EXPANDSIZE);
                 }
              break;
              
@@ -602,7 +602,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 }
              else
                 {
-                strcat(buffer,VDAY);
+                (void)strlcat(buffer,VDAY,CF_EXPANDSIZE);
                 }
              break;
          case cfhr:
@@ -612,7 +612,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 }
              else
                 {
-                strcat(buffer,VHR);
+                (void)strlcat(buffer,VHR,CF_EXPANDSIZE);
                 }
              break;
              
@@ -623,7 +623,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 }
              else
                 {
-                strcat(buffer,VMINUTE);
+                (void)strlcat(buffer,VMINUTE,CF_EXPANDSIZE);
                 }
              break;
              
@@ -631,14 +631,14 @@ for (sp = string; /* No exit */ ; sp++) 
              if (strlen(ALLCLASSBUFFER) == 0)
                 {
                 snprintf(name,CF_MAXVARSIZE,"$(%s)",currentitem);
-                strcat(buffer,name);
+                (void)strlcat(buffer,name,CF_EXPANDSIZE);
                 }
              
              if (ExpandOverflow(buffer,ALLCLASSBUFFER))
                 {
                 FatalError("Can't expandvarstring");
                 }
-             strcat(buffer,ALLCLASSBUFFER);
+             (void)strlcat(buffer,ALLCLASSBUFFER,CF_EXPANDSIZE);
              break;
              
          case cfspc:
@@ -646,7 +646,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expandvarstring");
                 }
-             strcat(buffer," ");
+             (void)strlcat(buffer," ",CF_EXPANDSIZE);
              break;
              
          case cftab:
@@ -654,7 +654,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expandvarstring");
                 }
-             strcat(buffer,"\t");
+             (void)strlcat(buffer,"\t",CF_EXPANDSIZE);
              break;
              
          case cflf:
@@ -662,7 +662,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expandvarstring");
                 }
-             strcat(buffer,"\012");
+             (void)strlcat(buffer,"\012",CF_EXPANDSIZE);
              break;
              
          case cfcr:
@@ -670,7 +670,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 { 
                 FatalError("Can't expandvarstring");
                 }
-             strcat(buffer,"\015");
+             (void)strlcat(buffer,"\015",CF_EXPANDSIZE);
              break;
              
          case cfn:
@@ -678,7 +678,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 { 
                 FatalError("Can't expandvarstring");
                 }
-             strcat(buffer,"\n");
+             (void)strlcat(buffer,"\n",CF_EXPANDSIZE);
              break;
              
          case cfdblquote:
@@ -686,14 +686,14 @@ for (sp = string; /* No exit */ ; sp++) 
                 { 
                 FatalError("Can't expandvarstring");
                 }
-             strcat(buffer,"\"");
+             (void)strlcat(buffer,"\"",CF_EXPANDSIZE);
              break;
          case cfquote:
              if (ExpandOverflow(buffer," "))
                 { 
                 FatalError("Can't expandvarstring");
                 }
-             strcat(buffer,"\'");
+             (void)strlcat(buffer,"\'",CF_EXPANDSIZE);
              break;
              
          case cfdollar:
@@ -704,7 +704,7 @@ for (sp = string; /* No exit */ ; sp++) 
                    { 
                    FatalError("Can't expandvarstring");
                    }
-                strcat(buffer,"$");
+                (void)strlcat(buffer,"$",CF_EXPANDSIZE);
                 }
              else
                 {
@@ -712,7 +712,7 @@ for (sp = string; /* No exit */ ; sp++) 
                    { 
                    FatalError("Can't expandvarstring");
                    }
-                strcat(buffer,"$(dollar)");
+                (void)strlcat(buffer,"$(dollar)",CF_EXPANDSIZE);
                 }
              break;
              
@@ -745,7 +745,7 @@ for (sp = string; /* No exit */ ; sp++) 
                    {
                    FatalError("Can't expandvarstring");
                    }
-                strcat(buffer,env);
+                (void)strlcat(buffer,env,CF_EXPANDSIZE);
                 Debug("Expansion gave (%s)\n",buffer);             
 
                 break;
@@ -761,7 +761,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 snprintf(name,CF_MAXVARSIZE,"$(%s)",currentitem);
                 }
-             strcat(buffer,name);
+             (void)strlcat(buffer,name,CF_EXPANDSIZE);
          }
       
       sp += strlen(currentitem);
@@ -795,7 +795,7 @@ for (sp = string; /* No exit */ ; sp++) 
 
    sscanf(sp,"%[^$]",currentitem);
 
-   strcat(buffer,currentitem);
+   (void)strlcat(buffer,currentitem,CF_EXPANDSIZE);
    sp += strlen(currentitem);
 
    if (*sp == '$')
@@ -809,7 +809,7 @@ for (sp = string; /* No exit */ ; sp++) 
                    varstring = '}';
                    break;
          default: 
-                   strcat(buffer,"$");
+                   (void)strlcat(buffer,"$",CF_EXPANDSIZE);
                    continue;
          }
       sp++;
@@ -823,7 +823,7 @@ for (sp = string; /* No exit */ ; sp++) 
       }
    else
       {
-      sprintf(scanstr,"%%[^%c]",varstring);   /* select the correct terminator */
+      (void)snprintf(scanstr,sizeof(scanstr),"%%[^%c]",varstring);   /* select the correct terminator */
       sscanf(++sp,scanstr,currentitem);               /* reduce item */
       
       switch (ScanVariable(currentitem))
@@ -833,7 +833,7 @@ for (sp = string; /* No exit */ ; sp++) 
                 {
                 FatalError("Can't expand varstring");
                 }
-             strcat(buffer,bserver);
+             (void)strlcat(buffer,bserver,CF_EXPANDSIZE);
              break;
          }
       
@@ -894,7 +894,7 @@ if (!IsVarString(varstring))
    return liststart;   
    }
 
-sprintf(format,"%%[^%c]",sep);   /* set format string to search */
+(void)snprintf(format,sizeof(format),"%%[^%c]",sep);   /* set format string to search */
 
 i = 0; /* extract variable */
 
