summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>1996-12-16 17:09:03 +0000
committerderaadt <deraadt@openbsd.org>1996-12-16 17:09:03 +0000
commit9179426fbc31a77bf7f3c6d3596289fda21f5a78 (patch)
tree34b69de4048fffd7296d1d2d83ea3ec063837e5d
parentstrncat botches (diff)
downloadwireguard-openbsd-9179426fbc31a77bf7f3c6d3596289fda21f5a78.tar.xz
wireguard-openbsd-9179426fbc31a77bf7f3c6d3596289fda21f5a78.zip
strncat related oflows
-rw-r--r--kerberosIV/krb/get_admhst.c4
-rw-r--r--kerberosIV/krb/get_krbhst.c4
-rw-r--r--kerberosIV/krb/get_krbrlm.c4
-rw-r--r--kerberosIV/krb/getrealm.c6
-rw-r--r--kerberosIV/krb/str2key.c6
5 files changed, 13 insertions, 11 deletions
diff --git a/kerberosIV/krb/get_admhst.c b/kerberosIV/krb/get_admhst.c
index 1aedd738a10..a1ea02d2af7 100644
--- a/kerberosIV/krb/get_admhst.c
+++ b/kerberosIV/krb/get_admhst.c
@@ -64,9 +64,9 @@ krb_get_admhst(h, r, n)
if ((cnffile = fopen(KRB_CONF,"r")) == NULL) {
char tbuf[128];
char *tdir = (char *) getenv("KRBCONFDIR");
- strncpy(tbuf, tdir ? tdir : "/etc", sizeof(tbuf));
- strncat(tbuf, "/krb.conf", sizeof(tbuf));
+ strncpy(tbuf, tdir ? tdir : "/etc", sizeof(tbuf)-1);
tbuf[sizeof(tbuf)-1] = 0;
+ strncat(tbuf, "/krb.conf", sizeof(tbuf)-strlen(tbuf));
if ((cnffile = fopen(tbuf,"r")) == NULL)
return(KFAILURE);
}
diff --git a/kerberosIV/krb/get_krbhst.c b/kerberosIV/krb/get_krbhst.c
index 05dfa6bfb0b..3afd9bc3d5b 100644
--- a/kerberosIV/krb/get_krbhst.c
+++ b/kerberosIV/krb/get_krbhst.c
@@ -72,9 +72,9 @@ krb_get_krbhst(h, r, n)
if ((cnffile = fopen(KRB_CONF,"r")) == NULL) {
char tbuf[128];
char *tdir = (char *) getenv("KRBCONFDIR");
- strncpy(tbuf, tdir ? tdir : "/etc", sizeof(tbuf));
- strncat(tbuf, "/krb.conf", sizeof(tbuf));
+ strncpy(tbuf, tdir ? tdir : "/etc", sizeof(tbuf)-1);
tbuf[sizeof(tbuf)-1] = 0;
+ strncat(tbuf, "/krb.conf", sizeof(tbuf)-strlen(tbuf));
if ((cnffile = fopen(tbuf,"r")) == NULL)
return(KFAILURE);
}
diff --git a/kerberosIV/krb/get_krbrlm.c b/kerberosIV/krb/get_krbrlm.c
index 36e8549b14d..8d6d259bf91 100644
--- a/kerberosIV/krb/get_krbrlm.c
+++ b/kerberosIV/krb/get_krbrlm.c
@@ -55,9 +55,9 @@ krb_get_lrealm(r, n)
if ((cnffile = fopen(KRB_CONF, "r")) == NULL) {
char tbuf[128];
char *tdir = (char *) getenv("KRBCONFDIR");
- strncpy(tbuf, tdir ? tdir : "/etc", sizeof(tbuf));
- strncat(tbuf, "/krb.conf", sizeof(tbuf));
+ strncpy(tbuf, tdir ? tdir : "/etc", sizeof(tbuf)-1);
tbuf[sizeof(tbuf)-1] = 0;
+ strncat(tbuf, "/krb.conf", sizeof(tbuf)-strlen(tbuf));
if ((cnffile = fopen(tbuf,"r")) == NULL)
return(KFAILURE);
}
diff --git a/kerberosIV/krb/getrealm.c b/kerberosIV/krb/getrealm.c
index 6ed07909c4a..52d3427721b 100644
--- a/kerberosIV/krb/getrealm.c
+++ b/kerberosIV/krb/getrealm.c
@@ -83,9 +83,9 @@ krb_realmofhost(host)
if ((trans_file = fopen(KRB_RLM_TRANS, "r")) == (FILE *) 0) {
char tbuf[128];
char *tdir = (char *) getenv("KRBCONFDIR");
- strncpy(tbuf, tdir ? tdir : "/etc", sizeof(tbuf));
- strncat(tbuf, "/krb.realms", sizeof(tbuf));
- tbuf[sizeof(tbuf)-1] = 0;
+ strncpy(tbuf, tdir ? tdir : "/etc", sizeof(tbuf)-1);
+ tbuf[sizeof(tbuf)-1] = '\0';
+ strncat(tbuf, "/krb.realms", sizeof(tbuf) - strlen(tbuf));
if ((trans_file = fopen(tbuf,"r")) == NULL)
return(ret_realm[0] ? ret_realm : NULL); /* krb_errno = KRB_NO_TRANS */
}
diff --git a/kerberosIV/krb/str2key.c b/kerberosIV/krb/str2key.c
index 471bc5e4c23..ecab2caaed5 100644
--- a/kerberosIV/krb/str2key.c
+++ b/kerberosIV/krb/str2key.c
@@ -90,10 +90,12 @@ afs_transarc_StringToKey (str, cell, key)
char password[BUFSIZ];
int passlen;
- strncpy (password, str, sizeof(password));
+ strncpy (password, str, sizeof(password)-1);
+ password[sizeof(password)-1] = '\0';
if ((passlen = strlen (password)) < sizeof(password)-1)
strncat (password, cell, sizeof(password)-passlen);
- if ((passlen = strlen(password)) > sizeof(password)) passlen = sizeof(password);
+ if ((passlen = strlen(password)) > sizeof(password))
+ passlen = sizeof(password);
bcopy ("kerberos", &ivec, 8);
bcopy ("kerberos", &temp_key, 8);