$OpenBSD: patch-src_cfagent_c,v 1.2 2004/08/08 14:02:11 sturm Exp $
--- src/cfagent.c.orig	Wed Jun 23 17:58:01 2004
+++ src/cfagent.c	Mon Aug  2 13:30:32 2004
@@ -217,7 +217,7 @@ void Initialize(int argc,char *argv[])
   unsigned char s[16];
   char ebuff[CF_EXPANDSIZE];
   
-strcpy(VDOMAIN,CF_START_DOMAIN);
+(void)strlcpy(VDOMAIN,CF_START_DOMAIN,sizeof(VDOMAIN));
 
 PreLockState();
  
@@ -231,7 +231,7 @@ VDEFAULTROUTE[0] = '\0';
 ALLCLASSBUFFER[0] = '\0';
 VREPOSITORY = strdup("\0");
 
-strcpy(METHODNAME,"cf-nomethod"); 
+(void)strlcpy(METHODNAME,"cf-nomethod",sizeof(METHODNAME)); 
 METHODREPLYTO[0] = '\0';
 METHODFOR[0] = '\0';
 METHODRETURNVARS[0] = '\0';
@@ -241,8 +241,8 @@ METHODRETURNCLASSES[0] = '\0';
 re_syntax_options |= RE_INTERVALS;
 #endif
  
-strcpy(VINPUTFILE,"cfagent.conf");
-strcpy(VNFSTYPE,"nfs");
+(void)strlcpy(VINPUTFILE,"cfagent.conf",CF_BUFSIZE);
+(void)strlcpy(VNFSTYPE,"nfs",sizeof(VNFSTYPE));
 
 IDClasses();
  
@@ -283,15 +283,15 @@ for (i = 1; i < argc; i++)
  VIFELAPSED = VDEFAULTIFELAPSED;
  TRAVLINKS = false;
  
- sprintf(ebuff,"%s/state/cf_procs",WORKDIR);
+ (void)snprintf(ebuff,sizeof(ebuff),"%s/state/cf_procs",WORKDIR);
  
  if (stat(ebuff,&statbuf) == -1)
     {
     CreateEmptyFile(ebuff);
     }
  
- strcpy(VLOGDIR,WORKDIR); 
- strcpy(VLOCKDIR,VLOGDIR);  /* Same since 2.0.a8 */
+ (void)strlcpy(VLOGDIR,WORKDIR,CF_BUFSIZE); 
+ (void)strlcpy(VLOCKDIR,VLOGDIR,CF_BUFSIZE);  /* Same since 2.0.a8 */
  
  OpenSSL_add_all_algorithms();
  ERR_load_crypto_strings();
@@ -320,8 +320,8 @@ if (NOPRECONFIG)
    return;
    }
 
-strcpy(VPREFIX,"cfengine:");
-strcat(VPREFIX,VUQNAME);
+(void)strlcpy(VPREFIX,"cfengine:",40);
+(void)strlcat(VPREFIX,VUQNAME, 40);
  
 if ((sp=getenv(CF_INPUTSVAR)) != NULL)
    {
@@ -608,8 +608,8 @@ if (strlen(ebuff) != 0)
    }
 else
    {
-   strcpy(VPREFIX,"cfengine:");
-   strcat(VPREFIX,VUQNAME);
+   (void)strlcpy(VPREFIX,"cfengine:",40);
+   (void)strlcat(VPREFIX,VUQNAME,40);
    }
 
 p2 = SortItemListNames(VHEAP);
@@ -750,7 +750,7 @@ if (VACTIONSEQ == NULL)
    Warning("perhaps cfagent.conf/update.conf have not yet been set up?");
    }
 
-sprintf(id,"%d",geteuid());   /* get effective user id */
+(void)snprintf(id,sizeof(id),"%d",geteuid());   /* get effective user id */
 
 if (VACCESSLIST != NULL && !IsItemIn(VACCESSLIST,id))
    {
@@ -900,7 +900,7 @@ if (OptionIs(CONTEXTID,"DryRun",true))
 
 if (GetMacroValue(CONTEXTID,"BinaryPaddingChar"))
    {
-   strcpy(ebuff,GetMacroValue(CONTEXTID,"BinaryPaddingChar"));
+   (void)strlcpy(ebuff,GetMacroValue(CONTEXTID,"BinaryPaddingChar"),sizeof(ebuff));
    
    if (ebuff[0] == '\\')
       {
@@ -1078,7 +1078,7 @@ if ((tloc = time((time_t *)NULL)) == -1)
 
 CFSTARTTIME = tloc;
 
-snprintf(vbuff,CF_BUFSIZE,"%s",ctime(&tloc));
+snprintf(vbuff,CF_MAXVARSIZE,"%s",ctime(&tloc));
 
 Verbose("Reference time set to %s\n",ctime(&tloc));
 
@@ -1441,7 +1441,7 @@ while (*sp != '\0')
       {
       VIFELAPSED = VDEFAULTIFELAPSED;
       VEXPIREAFTER = VDEFAULTEXPIREAFTER;
-      strcpy(actiontxt,cbuff);
+      (void)strlcpy(actiontxt,cbuff,sizeof(actiontxt));
       continue;
       }
    else
@@ -1841,8 +1841,8 @@ for (ip = VHEAP; ip != NULL; ip=ip->next
          {
          size++; /* Allow for : separator */
          }
-      strcat(ALLCLASSBUFFER,ip->name);
-      strcat(ALLCLASSBUFFER,":");
+      (void)strlcat(ALLCLASSBUFFER,ip->name,sizeof(ALLCLASSBUFFER));
+      (void)strlcat(ALLCLASSBUFFER,":",sizeof(ALLCLASSBUFFER));
       }
    }
  
@@ -1861,8 +1861,8 @@ for (ip = VHEAP; ip != NULL; ip=ip->next
          size++; /* Allow for : separator */
          }
       
-      strcat(ALLCLASSBUFFER,ip->name);
-      strcat(ALLCLASSBUFFER,":");
+      (void)strlcat(ALLCLASSBUFFER,ip->name,sizeof(ALLCLASSBUFFER));
+      (void)strlcat(ALLCLASSBUFFER,":",sizeof(ALLCLASSBUFFER));
       }
     }
  
