-/* $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 <deraadt@theos.com>
*/
#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 <sys/param.h>
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;
/* 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);
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;