summaryrefslogtreecommitdiffstats
path: root/src/kdc
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2008-10-24 20:07:00 +0000
committerGreg Hudson <ghudson@mit.edu>2008-10-24 20:07:00 +0000
commitfcf15c482b582c4f2e5dd7c6222c4e3509bbb7d6 (patch)
tree9ce89cc387b4bee641f0f25e818371b90731fdb6 /src/kdc
parent4d901a092a69a69be251131174166fc661d13633 (diff)
Use strlcpy instead of strcpy in many places
ticket: 6200 status: open git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20919 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/kdc')
-rw-r--r--src/kdc/fakeka.c21
-rw-r--r--src/kdc/kdc_authdata.c2
-rw-r--r--src/kdc/kerberos_v4.c2
-rw-r--r--src/kdc/network.c12
4 files changed, 19 insertions, 18 deletions
diff --git a/src/kdc/fakeka.c b/src/kdc/fakeka.c
index 21344596e..f861d48ed 100644
--- a/src/kdc/fakeka.c
+++ b/src/kdc/fakeka.c
@@ -51,6 +51,7 @@
#include <com_err.h>
#include <kerberosIV/krb.h>
#include <kerberosIV/des.h>
+#include <k5-platform.h>
#ifndef LINT
static char rcsid[]=
@@ -778,14 +779,14 @@ packet_t req, reply;
* Initialize these so we don't crash trying to print them in
* case they don't get filled in.
*/
- strcpy(rname, "Unknown");
- strcpy(rinst, "Unknown");
- strcpy(sname, "Unknown");
- strcpy(sinst, "Unknown");
- strcpy(cname, "Unknown");
- strcpy(cinst, "Unknown");
- strcpy(cell, "Unknown");
- strcpy(realm, "Unknown");
+ strlcpy(rname, "Unknown", sizeof(rname));
+ strlcpy(rinst, "Unknown", sizeof(rinst));
+ strlcpy(sname, "Unknown", sizeof(sname));
+ strlcpy(sinst, "Unknown", sizeof(sinst));
+ strlcpy(cname, "Unknown", sizeof(cname));
+ strlcpy(cinst, "Unknown", sizeof(cinst));
+ strlcpy(cell, "Unknown", sizeof(cell));
+ strlcpy(realm, "Unknown", sizeof(realm));
p = req->base;
maxn = req->len;
@@ -797,7 +798,7 @@ packet_t req, reply;
GET_PSTR(cell);
if (!cell[0])
- strcpy(cell, localcell);
+ strlcpy(cell, localcell, sizeof(cell));
if (debug)
fprintf(stderr, "Cell is %s\n", cell);
@@ -963,7 +964,7 @@ packet_t req, reply;
(strcasecmp(cell, localcell) == 0)) {
char *c;
- strcpy(rinst, localcell);
+ strlcpy(rinst, localcell, sizeof(rinst));
for (c = rinst; *c != NULL; c++)
*c = (char) tolower( (int) *c);
diff --git a/src/kdc/kdc_authdata.c b/src/kdc/kdc_authdata.c
index a1acdfd1a..a8f9241ea 100644
--- a/src/kdc/kdc_authdata.c
+++ b/src/kdc/kdc_authdata.c
@@ -101,7 +101,7 @@ greet_authdata(krb5_context ctx, krb5_db_entry *client,
free(a);
return ENOMEM;
}
- strcpy(p, "hello");
+ strlcpy(p, "hello", GREET_SIZE);
a->magic = KV5M_AUTHDATA;
a->ad_type = -42;
a->length = GREET_SIZE;
diff --git a/src/kdc/kerberos_v4.c b/src/kdc/kerberos_v4.c
index b2bfa4b54..8ac015b7f 100644
--- a/src/kdc/kerberos_v4.c
+++ b/src/kdc/kerberos_v4.c
@@ -288,7 +288,7 @@ static char * v4_klog( int type, const char *format, ...)
case L_NTGT_INTK:
case L_TKT_REQ:
case L_APPL_REQ:
- strcpy(log_text, "PROCESS_V4:");
+ strlcpy(log_text, "PROCESS_V4:", sizeof(log_text));
vsnprintf(log_text+strlen(log_text),
sizeof(log_text) - strlen(log_text),
format, pvar);
diff --git a/src/kdc/network.c b/src/kdc/network.c
index 3bad9650c..615049964 100644
--- a/src/kdc/network.c
+++ b/src/kdc/network.c
@@ -160,7 +160,7 @@ static const char *paddr (struct sockaddr *sa)
if (getnameinfo(sa, socklen(sa),
buf, sizeof(buf), portbuf, sizeof(portbuf),
NI_NUMERICHOST|NI_NUMERICSERV))
- strcpy(buf, "<unprintable>");
+ strlcpy(buf, "<unprintable>", sizeof(buf));
else {
unsigned int len = sizeof(buf) - strlen(buf);
char *p = buf + strlen(buf);
@@ -695,7 +695,7 @@ setup_udp_port(void *P_data, struct sockaddr *addr)
err = getnameinfo(addr, socklen(addr), haddrbuf, sizeof(haddrbuf),
0, 0, NI_NUMERICHOST);
if (err)
- strcpy(haddrbuf, "<unprintable>");
+ strlcpy(haddrbuf, "<unprintable>", sizeof(haddrbuf));
switch (addr->sa_family) {
case AF_INET:
@@ -1192,7 +1192,7 @@ static void process_packet(struct connection *conn, const char *prog,
char addrbuf[100];
if (getnameinfo(ss2sa(&daddr), daddr_len, addrbuf, sizeof(addrbuf),
0, 0, NI_NUMERICHOST))
- strcpy(addrbuf, "?");
+ strlcpy(addrbuf, "?", sizeof(addrbuf));
com_err(prog, 0, "pktinfo says local addr is %s", addrbuf);
}
#endif
@@ -1216,7 +1216,7 @@ static void process_packet(struct connection *conn, const char *prog,
krb5_free_data(kdc_context, response);
if (inet_ntop(((struct sockaddr *)&saddr)->sa_family,
addr.contents, addrbuf, sizeof(addrbuf)) == 0) {
- strcpy(addrbuf, "?");
+ strlcpy(addrbuf, "?", sizeof(addrbuf));
}
com_err(prog, errno, "while sending reply to %s/%d",
addrbuf, faddr.port);
@@ -1269,7 +1269,7 @@ static void accept_tcp_connection(struct connection *conn, const char *prog,
newconn->u.tcp.addrbuf, sizeof(newconn->u.tcp.addrbuf),
tmpbuf, sizeof(tmpbuf),
NI_NUMERICHOST | NI_NUMERICSERV))
- strcpy(newconn->u.tcp.addrbuf, "???");
+ strlcpy(newconn->u.tcp.addrbuf, "???", sizeof(newconn->u.tcp.addrbuf));
else {
char *p, *end;
p = newconn->u.tcp.addrbuf;
@@ -1277,7 +1277,7 @@ static void accept_tcp_connection(struct connection *conn, const char *prog,
p += strlen(p);
if (end - p > 2 + strlen(tmpbuf)) {
*p++ = '.';
- strcpy(p, tmpbuf);
+ strlcpy(p, tmpbuf, end - p);
}
}
#if 0