Only in cfengine-2.1.9: autom4te.cache diff -ur cfengine-2.1.9.orig/src/Makefile.am cfengine-2.1.9/src/Makefile.am --- cfengine-2.1.9.orig/src/Makefile.am Mon Aug 2 18:49:16 2004 +++ cfengine-2.1.9/src/Makefile.am Tue Aug 17 14:58:47 2004 @@ -208,7 +208,8 @@ cfenvgraph_SOURCES = \ cfenvgraph.c \ - granules.c + granules.c \ + globals.c # # Pickup header files here so Automake knows about them diff -ur cfengine-2.1.9.orig/src/Makefile.in cfengine-2.1.9/src/Makefile.in --- cfengine-2.1.9.orig/src/Makefile.in Mon Aug 9 17:27:43 2004 +++ cfengine-2.1.9/src/Makefile.in Tue Aug 17 14:59:10 2004 @@ -92,7 +92,8 @@ cfenvd_LDADD = $(LDADD) cfenvd_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) -am_cfenvgraph_OBJECTS = cfenvgraph.$(OBJEXT) granules.$(OBJEXT) +am_cfenvgraph_OBJECTS = cfenvgraph.$(OBJEXT) granules.$(OBJEXT) \ + globals.$(OBJEXT) cfenvgraph_OBJECTS = $(am_cfenvgraph_OBJECTS) cfenvgraph_LDADD = $(LDADD) cfenvgraph_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ @@ -512,7 +513,8 @@ cfenvgraph_SOURCES = \ cfenvgraph.c \ - granules.c + granules.c \ + globals.c # diff -ur cfengine-2.1.9.orig/src/cf.extern.h cfengine-2.1.9/src/cf.extern.h --- cfengine-2.1.9.orig/src/cf.extern.h Mon Aug 2 12:14:04 2004 +++ cfengine-2.1.9/src/cf.extern.h Tue Aug 17 10:28:04 2004 @@ -74,6 +74,7 @@ extern char CFPUBKEYFILE[CF_BUFSIZE]; extern char CFPRIVKEYFILE[CF_BUFSIZE]; +extern char CFWORKDIR[CF_BUFSIZE]; extern char AVDB[1024]; extern dev_t ROOTDEVICE; diff -ur cfengine-2.1.9.orig/src/cfagent.c cfengine-2.1.9/src/cfagent.c --- cfengine-2.1.9.orig/src/cfagent.c Mon Aug 9 13:57:06 2004 +++ cfengine-2.1.9/src/cfagent.c Tue Aug 17 15:05:33 2004 @@ -280,15 +280,29 @@ VEXPIREAFTER = VDEFAULTEXPIREAFTER; VIFELAPSED = VDEFAULTIFELAPSED; TRAVLINKS = false; + + /* XXX Initialize workdir for non privileged users */ + + strcpy(CFWORKDIR,WORKDIR); + + if (geteuid() > 0 ) + { + char *homedir; + if ((homedir = getenv("HOME")) != NULL) + { + strcpy(CFWORKDIR,homedir); + strcat(CFWORKDIR,"/.cfagent"); + } + } - sprintf(ebuff,"%s/state/cf_procs",WORKDIR); + sprintf(ebuff,"%s/state/cf_procs",CFWORKDIR); if (stat(ebuff,&statbuf) == -1) { CreateEmptyFile(ebuff); } - strcpy(VLOGDIR,WORKDIR); + strcpy(VLOGDIR,CFWORKDIR); strcpy(VLOCKDIR,VLOGDIR); /* Same since 2.0.a8 */ OpenSSL_add_all_algorithms(); @@ -335,7 +349,7 @@ } else { - snprintf(comm,CF_BUFSIZE,"%s/%s",WORKDIR,VPRECONFIG); + snprintf(comm,CF_BUFSIZE,"%s/%s",CFWORKDIR,VPRECONFIG); if (stat(comm,&buf) == -1) { @@ -343,7 +357,7 @@ return; } - snprintf(comm,CF_BUFSIZE,"%s/%s %s",WORKDIR,VPRECONFIG,CLASSTEXT[VSYSTEMHARDCLASS]); + snprintf(comm,CF_BUFSIZE,"%s/%s %s",CFWORKDIR,VPRECONFIG,CLASSTEXT[VSYSTEMHARDCLASS]); } if (S_ISDIR(buf.st_mode) || S_ISCHR(buf.st_mode) || S_ISBLK(buf.st_mode)) @@ -409,7 +423,7 @@ filename[0] = buffer[0] = class[0] = variable[0] = value[0] = '\0'; LINENUMBER = 0; -snprintf(filename,CF_BUFSIZE,"%s/inputs/%s",WORKDIR,VRCFILE); +snprintf(filename,CF_BUFSIZE,"%s/inputs/%s",CFWORKDIR,VRCFILE); if ((fp = fopen(filename,"r")) == NULL) /* Open root file */ { return; @@ -521,7 +535,7 @@ time_t now = time(NULL); Verbose("Looking for environment from cfenvd...\n"); -snprintf(env,CF_BUFSIZE,"%s/state/%s",WORKDIR,CF_ENV_FILE); +snprintf(env,CF_BUFSIZE,"%s/state/%s",CFWORKDIR,CF_ENV_FILE); if (stat(env,&statbuf) == -1) { @@ -818,7 +832,7 @@ if (GetMacroValue(CONTEXTID,"LogDirectory")) { - Verbose("\n[LogDirectory is no longer runtime configurable: use configure --with-workdir=WORKDIR ]\n\n"); + Verbose("\n[LogDirectory is no longer runtime configurable: use configure --with-workdir=CFWORKDIR ]\n\n"); } Verbose("LogDirectory = %s\n",VLOGDIR); @@ -983,7 +997,7 @@ } else { - snprintf(ebuff,CF_BUFSIZE,"%s/checksum.db",WORKDIR); + snprintf(ebuff,CF_BUFSIZE,"%s/checksum.db",CFWORKDIR); CHECKSUMDB = strdup(ebuff); } diff -ur cfengine-2.1.9.orig/src/cfenvd.c cfengine-2.1.9/src/cfenvd.c --- cfengine-2.1.9.orig/src/cfenvd.c Fri Jun 18 10:43:37 2004 +++ cfengine-2.1.9/src/cfenvd.c Tue Aug 17 15:05:47 2004 @@ -241,19 +241,33 @@ } LOGGING = true; /* Do output to syslog */ + +/* XXX Initialize workdir for non privileged users */ + +strcpy(CFWORKDIR,WORKDIR); + +if (geteuid() > 0 ) +{ + char *homedir; + if ((homedir = getenv("HOME")) != NULL) + { + strcpy(CFWORKDIR,homedir); + strcat(CFWORKDIR,"/.cfagent"); + } +} -sprintf(VBUFF,"%s/test",WORKDIR); +sprintf(VBUFF,"%s/test",CFWORKDIR); MakeDirectoriesFor(VBUFF,'y'); -sprintf(VBUFF,"%s/state/test",WORKDIR); +sprintf(VBUFF,"%s/state/test",CFWORKDIR); MakeDirectoriesFor(VBUFF,'y'); -strncpy(VLOCKDIR,WORKDIR,CF_BUFSIZE-1); -strncpy(VLOGDIR,WORKDIR,CF_BUFSIZE-1); +strncpy(VLOCKDIR,CFWORKDIR,CF_BUFSIZE-1); +strncpy(VLOGDIR,CFWORKDIR,CF_BUFSIZE-1); for (i = 0; i < ATTR; i++) { - sprintf(VBUFF,"%s/state/cf_incoming.%s",WORKDIR,ECGSOCKS[i][1]); + sprintf(VBUFF,"%s/state/cf_incoming.%s",CFWORKDIR,ECGSOCKS[i][1]); CreateEmptyFile(VBUFF); - sprintf(VBUFF,"%s/state/cf_outgoing.%s",WORKDIR,ECGSOCKS[i][1]); + sprintf(VBUFF,"%s/state/cf_outgoing.%s",CFWORKDIR,ECGSOCKS[i][1]); CreateEmptyFile(VBUFF); } @@ -263,13 +277,13 @@ NETOUT_DIST[i] = NULL; } -sprintf(VBUFF,"%s/state/cf_users",WORKDIR); +sprintf(VBUFF,"%s/state/cf_users",CFWORKDIR); CreateEmptyFile(VBUFF); -snprintf(AVDB,CF_BUFSIZE,"%s/state/%s",WORKDIR,CF_AVDB_FILE); -snprintf(STATELOG,CF_BUFSIZE,"%s/state/%s",WORKDIR,CF_STATELOG_FILE); -snprintf(ENV_NEW,CF_BUFSIZE,"%s/state/%s",WORKDIR,CF_ENVNEW_FILE); -snprintf(ENV,CF_BUFSIZE,"%s/state/%s",WORKDIR,CF_ENV_FILE); +snprintf(AVDB,CF_BUFSIZE,"%s/state/%s",CFWORKDIR,CF_AVDB_FILE); +snprintf(STATELOG,CF_BUFSIZE,"%s/state/%s",CFWORKDIR,CF_STATELOG_FILE); +snprintf(ENV_NEW,CF_BUFSIZE,"%s/state/%s",CFWORKDIR,CF_ENVNEW_FILE); +snprintf(ENV,CF_BUFSIZE,"%s/state/%s",CFWORKDIR,CF_ENV_FILE); if (!BATCH_MODE) { @@ -422,7 +436,7 @@ { char filename[CF_BUFSIZE]; - snprintf(filename,CF_BUFSIZE,"%s/state/histograms",WORKDIR); + snprintf(filename,CF_BUFSIZE,"%s/state/histograms",CFWORKDIR); if ((fp = fopen(filename,"r")) == NULL) { @@ -1064,7 +1078,7 @@ cfpclose(pp); -snprintf(VBUFF,CF_MAXVARSIZE,"%s/state/cf_users",WORKDIR); +snprintf(VBUFF,CF_MAXVARSIZE,"%s/state/cf_users",CFWORKDIR); SaveItemList(list,VBUFF,"none"); Verbose("(Users,root,other) = (%d,%d,%d)\n",NUMBER_OF_USERS,ROOTPROCS,OTHERPROCS); @@ -1247,7 +1261,7 @@ time_t now = time(NULL); Debug("save incoming %s\n",ECGSOCKS[i][1]); - snprintf(VBUFF,CF_MAXVARSIZE,"%s/state/cf_incoming.%s",WORKDIR,ECGSOCKS[i][1]); + snprintf(VBUFF,CF_MAXVARSIZE,"%s/state/cf_incoming.%s",CFWORKDIR,ECGSOCKS[i][1]); if (stat(VBUFF,&statbuf) != -1) { if ((ByteSizeList(in[i]) < statbuf.st_size) && (now < statbuf.st_mtime+40*60)) @@ -1270,7 +1284,7 @@ time_t now = time(NULL); Debug("save outgoing %s\n",ECGSOCKS[i][1]); - snprintf(VBUFF,CF_MAXVARSIZE,"%s/state/cf_outgoing.%s",WORKDIR,ECGSOCKS[i][1]); + snprintf(VBUFF,CF_MAXVARSIZE,"%s/state/cf_outgoing.%s",CFWORKDIR,ECGSOCKS[i][1]); if (stat(VBUFF,&statbuf) != -1) { @@ -1295,7 +1309,7 @@ time_t now = time(NULL); Debug("save incoming %s\n",TCPNAMES[i]); - snprintf(VBUFF,CF_MAXVARSIZE,"%s/state/cf_incoming.%s",WORKDIR,TCPNAMES[i]); + snprintf(VBUFF,CF_MAXVARSIZE,"%s/state/cf_incoming.%s",CFWORKDIR,TCPNAMES[i]); if (stat(VBUFF,&statbuf) != -1) { @@ -1321,7 +1335,7 @@ time_t now = time(NULL); Debug("save outgoing %s\n",TCPNAMES[i]); - snprintf(VBUFF,CF_MAXVARSIZE,"%s/state/cf_outgoing.%s",WORKDIR,TCPNAMES[i]); + snprintf(VBUFF,CF_MAXVARSIZE,"%s/state/cf_outgoing.%s",CFWORKDIR,TCPNAMES[i]); if (stat(VBUFF,&statbuf) != -1) { @@ -1683,7 +1697,7 @@ FILE *fp; char filename[CF_BUFSIZE]; - snprintf(filename,CF_BUFSIZE,"%s/state/histograms",WORKDIR); + snprintf(filename,CF_BUFSIZE,"%s/state/histograms",CFWORKDIR); if ((fp = fopen(filename,"w")) == NULL) { @@ -2096,11 +2110,11 @@ if (strncmp(inout,"in",2) == 0) { - snprintf(filename,CF_BUFSIZE-1,"%s/state/cf_incoming.%s",WORKDIR,TCPNAMES[i]); + snprintf(filename,CF_BUFSIZE-1,"%s/state/cf_incoming.%s",CFWORKDIR,TCPNAMES[i]); } else { - snprintf(filename,CF_BUFSIZE-1,"%s/state/cf_outgoing.%s",WORKDIR,TCPNAMES[i]); + snprintf(filename,CF_BUFSIZE-1,"%s/state/cf_outgoing.%s",CFWORKDIR,TCPNAMES[i]); } Verbose("TCP Save %s\n",filename); diff -ur cfengine-2.1.9.orig/src/cfenvgraph.c cfengine-2.1.9/src/cfenvgraph.c --- cfengine-2.1.9.orig/src/cfenvgraph.c Fri May 7 15:44:59 2004 +++ cfengine-2.1.9/src/cfenvgraph.c Tue Aug 17 15:05:51 2004 @@ -57,7 +57,8 @@ /*****************************************************************************/ -char *COPYRIGHT = "Free Software Foundation 2001-\nDonated by Mark Burgess, Faculty of Engineering,\nOslo University College, 0254 Oslo, Norway"; +/* char *COPYRIGHT = "Free Software Foundation 2001-\nDonated by Mark Burgess, Faculty of Engineering,\nOslo University College, 0254 Oslo, Norway"; + */ struct option GRAPHOPTIONS[] = { @@ -84,7 +85,7 @@ char VFQNAME[CF_BUFSIZE]; /*****************************************************************************/ - +/* char *ECGSOCKS[ATTR][2] = { {"137","netbiosns"}, @@ -110,7 +111,7 @@ "tcpfin", "misc", }; - +*/ char *PH_BINARIES[PH_LIMIT] = /* Miss leading slash */ { "usr/sbin/atd", @@ -157,7 +158,7 @@ char cfcom[CF_BUFSIZE]; static char line[CF_BUFSIZE]; -snprintf(cfcom,CF_BUFSIZE-1,"%s/bin/cfagent -z",WORKDIR); +snprintf(cfcom,CF_BUFSIZE-1,"%s/bin/cfagent -z",CFWORKDIR); if ((pp=popen(cfcom,"r")) == NULL) { @@ -1017,7 +1018,7 @@ int position,day; int weekly[CF_NETATTR*2+ATTR*2+5+PH_LIMIT][CF_GRAINS]; - snprintf(FLNAME,CF_BUFSIZE,"%s/state/histograms",WORKDIR); + snprintf(FLNAME,CF_BUFSIZE,"%s/state/histograms",CFWORKDIR); if ((fp = fopen(FLNAME,"r")) == NULL) { @@ -1334,14 +1335,14 @@ return; } -if ((dirh = opendir(WORKDIR)) == NULL) +if ((dirh = opendir(CFWORKDIR)) == NULL) { - printf("Can't open directory %s\n",WORKDIR); + printf("Can't open directory %s\n",CFWORKDIR); perror("opendir"); return; } -printf("\n\nLooking for filesystem arrival process data in %s\n",WORKDIR); +printf("\n\nLooking for filesystem arrival process data in %s\n",CFWORKDIR); for (dirp = readdir(dirh); dirp != NULL; dirp = readdir(dirh)) { @@ -1349,7 +1350,7 @@ { printf("Found %s - generating X,Y plot\n",dirp->d_name); - snprintf(database,CF_BUFSIZE-1,"%s/%s",WORKDIR,dirp->d_name); + snprintf(database,CF_BUFSIZE-1,"%s/%s",CFWORKDIR,dirp->d_name); if ((errno = db_create(&dbp,dbenv,0)) != 0) { @@ -1472,7 +1473,21 @@ int optindex = 0; int c; -snprintf(FILENAME,CF_BUFSIZE,"%s/state/%s",WORKDIR,CF_AVDB_FILE); + /* XXX Initialize workdir for non privileged users */ + + strcpy(CFWORKDIR,WORKDIR); + + if (geteuid() > 0 ) + { + char *homedir; + if ((homedir = getenv("HOME")) != NULL) + { + strcpy(CFWORKDIR,homedir); + strcat(CFWORKDIR,"/.cfagent"); + } + } + +snprintf(FILENAME,CF_BUFSIZE,"%s/state/%s",CFWORKDIR,CF_AVDB_FILE); while ((c=getopt_long(argc,argv,"Thtf:rsen",GRAPHOPTIONS,&optindex)) != EOF) { diff -ur cfengine-2.1.9.orig/src/cfexecd.c cfengine-2.1.9/src/cfexecd.c --- cfengine-2.1.9.orig/src/cfexecd.c Mon Aug 9 07:43:24 2004 +++ cfengine-2.1.9/src/cfexecd.c Tue Aug 17 15:05:54 2004 @@ -212,20 +212,34 @@ LOGGING = true; /* Do output to syslog */ -snprintf(VBUFF,CF_BUFSIZE,"%s/inputs/update.conf",WORKDIR); + /* XXX Initialize workdir for non privileged users */ + + strcpy(CFWORKDIR,WORKDIR); + + if (geteuid() > 0 ) + { + char *homedir; + if ((homedir = getenv("HOME")) != NULL) + { + strcpy(CFWORKDIR,homedir); + strcat(CFWORKDIR,"/.cfagent"); + } + } + +snprintf(VBUFF,CF_BUFSIZE,"%s/inputs/update.conf",CFWORKDIR); MakeDirectoriesFor(VBUFF,'y'); -snprintf(VBUFF,CF_BUFSIZE,"%s/bin/cfagent",WORKDIR); +snprintf(VBUFF,CF_BUFSIZE,"%s/bin/cfagent",CFWORKDIR); MakeDirectoriesFor(VBUFF,'y'); -snprintf(VBUFF,CF_BUFSIZE,"%s/outputs/spooled_reports",WORKDIR); +snprintf(VBUFF,CF_BUFSIZE,"%s/outputs/spooled_reports",CFWORKDIR); MakeDirectoriesFor(VBUFF,'y'); -snprintf(VBUFF,CF_BUFSIZE,"%s/inputs",WORKDIR); +snprintf(VBUFF,CF_BUFSIZE,"%s/inputs",CFWORKDIR); chmod(VBUFF,0700); -snprintf(VBUFF,CF_BUFSIZE,"%s/outputs",WORKDIR); +snprintf(VBUFF,CF_BUFSIZE,"%s/outputs",CFWORKDIR); chmod(VBUFF,0700); -strncpy(VLOCKDIR,WORKDIR,CF_BUFSIZE-1); -strncpy(VLOGDIR,WORKDIR,CF_BUFSIZE-1); +strncpy(VLOCKDIR,CFWORKDIR,CF_BUFSIZE-1); +strncpy(VLOGDIR,CFWORKDIR,CF_BUFSIZE-1); VCANONICALFILE = strdup(CanonifyName(VINPUTFILE)); GetNameInfo(); @@ -388,7 +402,7 @@ char cfcom[CF_BUFSIZE]; static char line[CF_BUFSIZE]; -snprintf(cfcom,CF_BUFSIZE-1,"%s/bin/cfagent -z",WORKDIR); +snprintf(cfcom,CF_BUFSIZE-1,"%s/bin/cfagent -z",CFWORKDIR); if ((pp=cfpopen(cfcom,"r")) == NULL) { @@ -571,15 +585,15 @@ if (NOSPLAY) { - snprintf(cmd,CF_BUFSIZE-1,"%s/bin/cfagent -q",WORKDIR); + snprintf(cmd,CF_BUFSIZE-1,"%s/bin/cfagent -q",CFWORKDIR); } else { - snprintf(cmd,CF_BUFSIZE-1,"%s/bin/cfagent",WORKDIR); + snprintf(cmd,CF_BUFSIZE-1,"%s/bin/cfagent",CFWORKDIR); } snprintf(line,100,CanonifyName(ctime(&starttime))); -snprintf(filename,CF_BUFSIZE-1,"%s/outputs/cf_%s_%s",WORKDIR,CanonifyName(VFQNAME),line); +snprintf(filename,CF_BUFSIZE-1,"%s/outputs/cf_%s_%s",CFWORKDIR,CanonifyName(VFQNAME),line); /* What if no more processes? Could sacrifice and exec() - but we need a sentinel */ @@ -798,7 +812,7 @@ } /* HvB: Bas van der Vlies */ -snprintf(prev_file,CF_BUFSIZE-1,"%s/outputs/previous",WORKDIR); +snprintf(prev_file,CF_BUFSIZE-1,"%s/outputs/previous",CFWORKDIR); if (statbuf.st_size == 0) { diff -ur cfengine-2.1.9.orig/src/cfkey.c cfengine-2.1.9/src/cfkey.c --- cfengine-2.1.9.orig/src/cfkey.c Sat Apr 17 14:11:14 2004 +++ cfengine-2.1.9/src/cfkey.c Tue Aug 17 15:05:57 2004 @@ -147,8 +147,21 @@ { umask(077); -strcpy(VLOCKDIR,WORKDIR); -strcpy(VLOGDIR,WORKDIR); + /* XXX Initialize workdir for non privileged users */ + + strcpy(CFWORKDIR,WORKDIR); + + if (geteuid() > 0 ) + { + char *homedir; + if ((homedir = getenv("HOME")) != NULL) + { + strcpy(CFWORKDIR,homedir); + strcat(CFWORKDIR,"/.cfagent"); + } + } +strcpy(VLOCKDIR,CFWORKDIR); +strcpy(VLOGDIR,CFWORKDIR); OpenSSL_add_all_algorithms(); ERR_load_crypto_strings(); diff -ur cfengine-2.1.9.orig/src/cfrun.c cfengine-2.1.9/src/cfrun.c --- cfengine-2.1.9.orig/src/cfrun.c Mon Aug 2 19:46:03 2004 +++ cfengine-2.1.9/src/cfrun.c Tue Aug 17 15:06:01 2004 @@ -256,12 +256,26 @@ Debug("FQNAME = %s\n",VFQNAME); sprintf(VPREFIX,"cfrun:%s",VFQNAME); + + /* XXX Initialize workdir for non privileged users */ + + strcpy(CFWORKDIR,WORKDIR); + + if (geteuid() > 0 ) + { + char *homedir; + if ((homedir = getenv("HOME")) != NULL) + { + strcpy(CFWORKDIR,homedir); + strcat(CFWORKDIR,"/.cfagent"); + } + } /* Read hosts file */ umask(077); -strcpy(VLOCKDIR,WORKDIR); -strcpy(VLOGDIR,WORKDIR); +strcpy(VLOCKDIR,CFWORKDIR); +strcpy(VLOGDIR,CFWORKDIR); OpenSSL_add_all_algorithms(); ERR_load_crypto_strings(); @@ -572,7 +586,7 @@ } else { - snprintf(filename, CF_BUFSIZE, "%s/inputs/", WORKDIR); + snprintf(filename, CF_BUFSIZE, "%s/inputs/", CFWORKDIR); } } diff -ur cfengine-2.1.9.orig/src/cfservd.c cfengine-2.1.9/src/cfservd.c --- cfengine-2.1.9.orig/src/cfservd.c Tue Aug 3 08:04:56 2004 +++ cfengine-2.1.9/src/cfservd.c Tue Aug 17 15:06:04 2004 @@ -268,12 +268,26 @@ { CfLog(cferror,"Couldn't read system clock\n","time"); } + + /* XXX Initialize workdir for non privileged users */ + + strcpy(CFWORKDIR,WORKDIR); + + if (geteuid() > 0 ) + { + char *homedir; + if ((homedir = getenv("HOME")) != NULL) + { + strcpy(CFWORKDIR,homedir); + strcat(CFWORKDIR,"/.cfagent"); + } + } -snprintf(vbuff,CF_BUFSIZE,"%s/test",WORKDIR); +snprintf(vbuff,CF_BUFSIZE,"%s/test",CFWORKDIR); MakeDirectoriesFor(vbuff,'y'); -strncpy(VLOGDIR,WORKDIR,CF_BUFSIZE-1); -strncpy(VLOCKDIR,WORKDIR,CF_BUFSIZE-1); +strncpy(VLOGDIR,CFWORKDIR,CF_BUFSIZE-1); +strncpy(VLOCKDIR,CFWORKDIR,CF_BUFSIZE-1); VIFELAPSED = CF_EXEC_IFELAPSED; VEXPIREAFTER = CF_EXEC_EXPIREAFTER; @@ -960,7 +974,7 @@ { if (!IsAbsoluteFileName(VINPUTFILE)) /* Don't prepend to absolute names */ { - strncpy(filename,WORKDIR,CF_BUFSIZE-1); + strncpy(filename,CFWORKDIR,CF_BUFSIZE-1); AddSlash(filename); strncat(filename,"inputs/",CF_BUFSIZE-1-strlen(filename)); } @@ -3027,7 +3041,7 @@ char keydb[CF_MAXVARSIZE]; snprintf(keyname,CF_MAXVARSIZE,"%s-%s",username,mipaddr); -snprintf(keydb,CF_MAXVARSIZE,"%s/ppkeys/dynamic",WORKDIR); +snprintf(keydb,CF_MAXVARSIZE,"%s/ppkeys/dynamic",CFWORKDIR); Debug("The key does not match the known, key but the host has dynamic IP...\n"); @@ -3125,7 +3139,7 @@ DB *dbp; char keydb[CF_MAXVARSIZE]; -snprintf(keydb,CF_MAXVARSIZE,"%s/ppkeys/dynamic",WORKDIR); +snprintf(keydb,CF_MAXVARSIZE,"%s/ppkeys/dynamic",CFWORKDIR); if ((DHCPLIST != NULL) && IsFuzzyItemIn(DHCPLIST,mipaddr)) { diff -ur cfengine-2.1.9.orig/src/crypto.c cfengine-2.1.9/src/crypto.c --- cfengine-2.1.9.orig/src/crypto.c Mon Aug 9 17:08:02 2004 +++ cfengine-2.1.9/src/crypto.c Tue Aug 17 14:05:10 2004 @@ -49,7 +49,7 @@ if (stat(VBUFF,&statbuf) == -1) { - snprintf(AVDB,CF_BUFSIZE,"%s/%s",WORKDIR,CF_AVDB_FILE); + snprintf(AVDB,CF_BUFSIZE,"%s/%s",CFWORKDIR,CF_AVDB_FILE); } else { @@ -153,7 +153,7 @@ } else { - snprintf(filename,CF_BUFSIZE,"%s/ppkeys/%s.pub",WORKDIR,name); + snprintf(filename,CF_BUFSIZE,"%s/ppkeys/%s.pub",CFWORKDIR,name); } if (stat(filename,&statbuf) == -1) @@ -215,7 +215,7 @@ } else { - snprintf(filename,CF_BUFSIZE,"%s/ppkeys/%s.pub",WORKDIR,name); + snprintf(filename,CF_BUFSIZE,"%s/ppkeys/%s.pub",CFWORKDIR,name); } if (stat(filename,&statbuf) != -1) @@ -263,7 +263,7 @@ } else { - snprintf(filename,CF_BUFSIZE,"%s/ppkeys/%s.pub",WORKDIR,name); + snprintf(filename,CF_BUFSIZE,"%s/ppkeys/%s.pub",CFWORKDIR,name); } unlink(filename); diff -ur cfengine-2.1.9.orig/src/functions.c cfengine-2.1.9/src/functions.c --- cfengine-2.1.9.orig/src/functions.c Mon Aug 2 12:15:08 2004 +++ cfengine-2.1.9/src/functions.c Tue Aug 17 14:05:19 2004 @@ -1334,7 +1334,7 @@ return; } -snprintf(buffer,CF_BUFSIZE-1,"%s/state/cf_%s",WORKDIR,args); +snprintf(buffer,CF_BUFSIZE-1,"%s/state/cf_%s",CFWORKDIR,args); if (stat(buffer,&statbuf) == 0) { diff -ur cfengine-2.1.9.orig/src/globals.c cfengine-2.1.9/src/globals.c --- cfengine-2.1.9.orig/src/globals.c Mon Aug 2 12:06:01 2004 +++ cfengine-2.1.9/src/globals.c Tue Aug 17 10:27:29 2004 @@ -60,6 +60,7 @@ char CFPUBKEYFILE[CF_BUFSIZE]; char CFPRIVKEYFILE[CF_BUFSIZE]; char AVDB[1024]; +char CFWORKDIR[CF_BUFSIZE]; RSA *PRIVKEY = NULL, *PUBKEY = NULL; diff -ur cfengine-2.1.9.orig/src/image.c cfengine-2.1.9/src/image.c --- cfengine-2.1.9.orig/src/image.c Sat Jul 31 06:33:37 2004 +++ cfengine-2.1.9/src/image.c Tue Aug 17 14:05:34 2004 @@ -74,8 +74,8 @@ snprintf(VBUFF,CF_BUFSIZE,"%s_*",Hostname2IPString(VFQNAME)); InitializeAction(); - snprintf(DESTINATION,CF_BUFSIZE,"%s/rpc_in",WORKDIR); - snprintf(CURRENTOBJECT,CF_BUFSIZE,"%s/rpc_out",WORKDIR); + snprintf(DESTINATION,CF_BUFSIZE,"%s/rpc_in",CFWORKDIR); + snprintf(CURRENTOBJECT,CF_BUFSIZE,"%s/rpc_out",CFWORKDIR); snprintf(FINDERTYPE,1,"*"); PLUSMASK = 0400; MINUSMASK = 0377; diff -ur cfengine-2.1.9.orig/src/init.c cfengine-2.1.9/src/init.c --- cfengine-2.1.9.orig/src/init.c Sat Apr 17 14:11:18 2004 +++ cfengine-2.1.9/src/init.c Tue Aug 17 14:05:43 2004 @@ -76,8 +76,8 @@ MakeDirectoriesFor(VBUFF,'n'); snprintf(VBUFF,CF_BUFSIZE,"%s/state/test",VLOGDIR); MakeDirectoriesFor(VBUFF,'n'); - snprintf(CFPRIVKEYFILE,CF_BUFSIZE,"%s/ppkeys/localhost.priv",WORKDIR); - snprintf(CFPUBKEYFILE,CF_BUFSIZE,"%s/ppkeys/localhost.pub",WORKDIR); + snprintf(CFPRIVKEYFILE,CF_BUFSIZE,"%s/ppkeys/localhost.priv",CFWORKDIR); + snprintf(CFPUBKEYFILE,CF_BUFSIZE,"%s/ppkeys/localhost.pub",CFWORKDIR); } Verbose("Checking integrity of the state database\n"); diff -ur cfengine-2.1.9.orig/src/item-ext.c cfengine-2.1.9/src/item-ext.c --- cfengine-2.1.9.orig/src/item-ext.c Mon Jul 19 18:55:55 2004 +++ cfengine-2.1.9/src/item-ext.c Tue Aug 17 10:12:25 2004 @@ -1871,6 +1871,9 @@ { int code; char buf[CF_BUFSIZE]; +if (regex == NULL || *regex == '\0') + return -1; + code = regcomp(preg,regex,cflags); if (code != 0) diff -ur cfengine-2.1.9.orig/src/methods.c cfengine-2.1.9/src/methods.c --- cfengine-2.1.9.orig/src/methods.c Mon Aug 9 12:59:49 2004 +++ cfengine-2.1.9/src/methods.c Tue Aug 17 14:05:57 2004 @@ -270,7 +270,7 @@ strcat(options,digeststring); strcat(options," "); -snprintf(execstr,CF_BUFSIZE-1,"%s/bin/cfagent -f %s %s",WORKDIR,GetMethodFilename(ptr),options); +snprintf(execstr,CF_BUFSIZE-1,"%s/bin/cfagent -f %s %s",CFWORKDIR,GetMethodFilename(ptr),options); Verbose("Trying %s\n",execstr); diff -ur cfengine-2.1.9.orig/src/parse.c cfengine-2.1.9/src/parse.c --- cfengine-2.1.9.orig/src/parse.c Mon Aug 2 13:31:19 2004 +++ cfengine-2.1.9/src/parse.c Tue Aug 17 14:06:22 2004 @@ -1131,8 +1131,8 @@ if (! IsAbsoluteFileName(result)) { - Verbose("CFINPUTS was not an absolute path, overriding with %s\n",WORKDIR); - snprintf(result,CF_BUFSIZE,"%s/inputs",WORKDIR); + Verbose("CFINPUTS was not an absolute path, overriding with %s\n",CFWORKDIR); + snprintf(result,CF_BUFSIZE,"%s/inputs",CFWORKDIR); } AddSlash(result); @@ -1142,7 +1142,7 @@ { if (!IsAbsoluteFileName(filename)) /* Don't prepend to absolute names */ { - strcpy(result,WORKDIR); + strcpy(result,CFWORKDIR); AddSlash(result); strcat(result,"inputs/"); } diff -ur cfengine-2.1.9.orig/src/process.c cfengine-2.1.9/src/process.c --- cfengine-2.1.9.orig/src/process.c Sat Apr 17 14:11:00 2004 +++ cfengine-2.1.9/src/process.c Tue Aug 17 14:06:28 2004 @@ -64,7 +64,7 @@ cfpclose(pp); -snprintf(VBUFF,CF_MAXVARSIZE,"%s/state/cf_procs",WORKDIR); +snprintf(VBUFF,CF_MAXVARSIZE,"%s/state/cf_procs",CFWORKDIR); imgbackup = IMAGEBACKUP; IMAGEBACKUP = 'n';