summaryrefslogtreecommitdiff
path: root/net/cmu-dhcpd/patches/patch-ad
diff options
context:
space:
mode:
Diffstat (limited to 'net/cmu-dhcpd/patches/patch-ad')
-rw-r--r--net/cmu-dhcpd/patches/patch-ad115
1 files changed, 115 insertions, 0 deletions
diff --git a/net/cmu-dhcpd/patches/patch-ad b/net/cmu-dhcpd/patches/patch-ad
new file mode 100644
index 00000000000..b6f241a7163
--- /dev/null
+++ b/net/cmu-dhcpd/patches/patch-ad
@@ -0,0 +1,115 @@
+$NetBSD: patch-ad,v 1.1 2006/03/14 02:21:46 joerg Exp $
+
+--- hashf.c.orig 2006-03-14 02:10:26.000000000 +0000
++++ hashf.c
+@@ -33,6 +33,7 @@ SOFTWARE.
+
+
+ #include <sys/types.h>
++#include <limits.h>
+ #include <stdlib.h>
+
+ #ifndef USE_BFUNCS
+@@ -168,10 +169,14 @@ hashf_Exists(hashtable, hashcode, compar
+ hash_datum *key;
+ {
+ FILE *fp;
++#if defined(NAME_MAX)
++ char name[NAME_MAX],buf[MAXELEMENTLEN];
++#else
+ char name[MAXNAMLEN],buf[MAXELEMENTLEN];
++#endif
+ int len,rc;
+
+- sprintf(name,"%s/%X",hashtable->dirname,hashcode % hashtable->size);
++ snprintf(name,sizeof(name),"%s/%X",hashtable->dirname,hashcode % hashtable->size);
+ fp=fopen(name,"r");
+ if(!fp)
+ return FALSE;
+@@ -215,10 +220,14 @@ hashf_Insert(hashtable, hashcode, compar
+ unsigned long elen;
+ {
+ FILE *fp;
++#if defined(NAME_MAX)
++ char name[NAME_MAX],buf[MAXELEMENTLEN];
++#else
+ char name[MAXNAMLEN],buf[MAXELEMENTLEN];
++#endif
+ int rc,len;
+ hashcode %= hashtable->size;
+- sprintf(name,"%s/%X",hashtable->dirname,hashcode);
++ snprintf(name,sizeof(name),"%s/%X",hashtable->dirname,hashcode);
+
+ fp=fopen(name,"a+");
+ if(!fp)
+@@ -265,10 +274,14 @@ hashf_Delete(hashtable, hashcode, compar
+ hash_datum *key;
+ {
+ FILE *fp,*tmp;
++#if defined(NAME_MAX)
++ char name[NAME_MAX],buf[MAXELEMENTLEN];
++#else
+ char name[MAXNAMLEN],buf[MAXELEMENTLEN];
++#endif
+ int rc,len;
+ hashcode %= hashtable->size;
+- sprintf(name,"%s/%X",hashtable->dirname,hashcode);
++ snprintf(name,sizeof(name),"%s/%X",hashtable->dirname,hashcode);
+
+ fp=fopen(name,"r");
+ if(!fp)
+@@ -331,10 +344,14 @@ hashf_Replace(hashtable, hashcode, compa
+ unsigned long elen;
+ {
+ FILE *fp,*tmp;
++#if defined(NAME_MAX)
++ char name[NAME_MAX],buf[MAXELEMENTLEN];
++#else
+ char name[MAXNAMLEN],buf[MAXELEMENTLEN];
++#endif
+ int rc,len;
+ char write,done;
+- sprintf(name,"%s/%X",hashtable->dirname,hashcode % hashtable->size);
++ snprintf(name,sizeof(name),"%s/%X",hashtable->dirname,hashcode % hashtable->size);
+
+ fp=fopen(name,"r");
+ if(!fp)
+@@ -432,11 +449,15 @@ hashf_Lookup(hashtable, hashcode, compar
+ int *length;
+ {
+ FILE *fp;
+- char name[MAXNAMLEN],buf[MAXELEMENTLEN];
++#if defined(NAME_MAX)
++ char name[NAME_MAX],buf[MAXELEMENTLEN];
++#else
++ char name[MAXNAMLEN],buf[MAXELEMENTLEN];
++#endif
+ int len,rc;
+ hash_datum *p;
+
+- sprintf(name,"%s/%X",hashtable->dirname,hashcode % hashtable->size);
++ snprintf(name,sizeof(name),"%s/%X",hashtable->dirname,hashcode % hashtable->size);
+ fp=fopen(name,"r");
+ if(!fp)
+ return NULL;
+@@ -479,7 +500,11 @@ hashf_NextEntry(hashtable,length)
+ int *length;
+ {
+ unsigned long len;
++#if defined(NAME_MAX)
++ char name[NAME_MAX];
++#else
+ char name[MAXNAMLEN];
++#endif
+ int rc;
+ hash_datum *p;
+ struct dirent *direntry;
+@@ -494,7 +519,7 @@ hashf_NextEntry(hashtable,length)
+ }while(direntry->d_name[0]=='.');
+ if(hashtable->next)
+ fclose(hashtable->next);
+- sprintf(name,"%s/%s",hashtable->dirname,direntry->d_name);
++ snprintf(name,sizeof(name),"%s/%s",hashtable->dirname,direntry->d_name);
+ hashtable->next=fopen(name,"r");
+ rc=fread(&len,4,1,hashtable->next);
+ if(rc==0)