From c329c5c49de068dd53e3d2478a29cf2db9e7738f Mon Sep 17 00:00:00 2001 From: deraadt Date: Tue, 25 Mar 1997 23:08:57 +0000 Subject: [PATCH] careful with name lengths and the xid --- usr.sbin/ypbind/ypbind.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/usr.sbin/ypbind/ypbind.c b/usr.sbin/ypbind/ypbind.c index 3394804545b..ee7c9b9595e 100644 --- a/usr.sbin/ypbind/ypbind.c +++ b/usr.sbin/ypbind/ypbind.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ypbind.c,v 1.20 1997/02/01 00:26:04 deraadt Exp $ */ +/* $OpenBSD: ypbind.c,v 1.21 1997/03/25 23:08:57 deraadt Exp $ */ /* * Copyright (c) 1996 Theo de Raadt @@ -34,7 +34,7 @@ */ #ifndef LINT -static char rcsid[] = "$OpenBSD: ypbind.c,v 1.20 1997/02/01 00:26:04 deraadt Exp $"; +static char rcsid[] = "$OpenBSD: ypbind.c,v 1.21 1997/03/25 23:08:57 deraadt Exp $"; #endif #include @@ -169,7 +169,8 @@ ypbindproc_domain_2x(transp, argp, clnt) if (ypdb == NULL) { ypdb = (struct _dom_binding *)malloc(sizeof *ypdb); memset(ypdb, 0, sizeof *ypdb); - strncpy(ypdb->dom_domain, *argp, sizeof ypdb->dom_domain); + strncpy(ypdb->dom_domain, *argp, sizeof ypdb->dom_domain-1); + ypdb->dom_domain[sizeof ypdb->dom_domain-1] = '\0'; ypdb->dom_vers = YPVERS; ypdb->dom_alive = 0; ypdb->dom_lockfd = -1; @@ -501,10 +502,12 @@ main(argc, argv) /* build initial domain binding, make it "unsuccessful" */ ypbindlist = (struct _dom_binding *)malloc(sizeof *ypbindlist); memset(ypbindlist, 0, sizeof *ypbindlist); - strncpy(ypbindlist->dom_domain, domain, sizeof ypbindlist->dom_domain); + strncpy(ypbindlist->dom_domain, domain, sizeof ypbindlist->dom_domain-1); + ypbindlist->dom_domain[sizeof ypbindlist->dom_domain)-1] = '\0'; ypbindlist->dom_vers = YPVERS; ypbindlist->dom_alive = 0; ypbindlist->dom_lockfd = -1; + ypbindlist->dom_xid = unique_xid(ypbindlist); sprintf(path, "%s/%s.%d", BINDINGDIR, ypbindlist->dom_domain, (int)ypbindlist->dom_vers); (void)unlink(path); @@ -1003,7 +1006,8 @@ int force; return; ypdb = (struct _dom_binding *)malloc(sizeof *ypdb); memset(ypdb, 0, sizeof *ypdb); - strncpy(ypdb->dom_domain, dom, sizeof ypdb->dom_domain); + strncpy(ypdb->dom_domain, dom, sizeof ypdb->dom_domain-1); + ypdb->dom_domain[sizeof ypdb->dom_domain)-1] = '\0'; ypdb->dom_lockfd = -1; ypdb->dom_pnext = ypbindlist; ypbindlist = ypdb; -- 2.20.1