$OpenBSD: patch-balance_c,v 1.6 2003/06/30 18:46:23 pvalchev Exp $
--- balance.c.orig	Sat Sep 15 16:34:56 2001
+++ balance.c	Tue Jun 24 11:35:55 2003
@@ -673,11 +673,13 @@ static usage() {
   char* version;
   char* revision_copy;
   char* token;
+  size_t rev_len;
 
-  if((revision_copy=(char*) malloc(strlen(revision)+1))==NULL) {
+  rev_len = strlen(revision)+1;
+  if((revision_copy=(char*) malloc(rev_len))==NULL) {
     fprintf(stderr,"malloc problem in usage()\n");
   } else {
-    strcpy(revision_copy, revision);
+    strlcpy(revision_copy, revision, rev_len);
     token=strtok(revision_copy," ");
     token=strtok(NULL," ");
     version=token!=NULL?token:"*undefined*";
@@ -882,7 +884,8 @@ shell() {
 	printf("  version               show version id\n");
 
       } else if(mycmp(command,"disable")) {
-        char* arg, n; 
+        char* arg;
+	int n;
         if((arg=strtok(NULL," \t\n")) != NULL) {
 	  n=atoi(arg);
 	  if(n<0 || n >= grp_nchannels(common,currentgroup)) {
@@ -900,7 +903,8 @@ shell() {
 	  printf("syntax error\n");
 	}
       } else if(mycmp(command,"group")) {
-        char* arg, n; 
+        char* arg;
+	int n;
         if((arg=strtok(NULL," \t\n")) != NULL) {
 	  n=atoi(arg);
           if(n>=MAXGROUPS || n<0) {
@@ -913,7 +917,8 @@ shell() {
 	}
 
       } else if(mycmp(command,"reset")) {	// reset channel counters
-        char* arg, n; 
+        char* arg;
+	int n;
 
         if((arg=strtok(NULL," \t\n")) != NULL) {
 	  n=atoi(arg);
@@ -931,7 +936,8 @@ shell() {
 
       } else if(mycmp(command,"enable")) {
 
-        char* arg, n; 
+        char* arg;
+	int n;
         if((arg=strtok(NULL," \t\n")) != NULL) {
 	  n=atoi(arg);
 	  if(n<0 || n >= grp_nchannels(common,currentgroup)) {
@@ -1122,10 +1128,10 @@ char	*argv[];
   serv_addr.sin_family      = AF_INET;
   if(bindhost != NULL) {
     setipaddress(&serv_addr.sin_addr, bindhost);
-    sprintf(bindhost_address, inet_ntoa(serv_addr.sin_addr));
+    snprintf(bindhost_address, sizeof(bindhost_address), inet_ntoa(serv_addr.sin_addr));
   } else {
     serv_addr.sin_addr.s_addr=htonl(INADDR_ANY);
-    sprintf(bindhost_address,"0.0.0.0");
+    snprintf(bindhost_address, sizeof(bindhost_address), "0.0.0.0");
   }
   serv_addr.sin_port=htons(source_port);
 
@@ -1135,7 +1141,7 @@ char	*argv[];
      struct stat buffer;
      int fd;
 
-     sprintf(rendezvousfile,"%sbalance.%d.%s",SHMDIR,source_port,bindhost_address);
+     snprintf(rendezvousfile, sizeof(rendezvousfile), "%sbalance.%d.%s", SHMDIR, source_port, bindhost_address);
 
      if(stat(rendezvousfile, &buffer) == -1) {
        // File existiert (noch) nicht ...
