Mercurial > illumos > illumos-gate
changeset 13584:fc320b2833d3
2018 makedbm overwrites and overflows constant string
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Reviewed by: Joshua M. Clulow <josh@sysmgr.org>
Approved by: Gordon Ross <gwr@nexenta.com>
author | Richard Lowe <richlowe@richlowe.net> |
---|---|
date | Sun, 22 Jan 2012 05:35:33 +0000 |
parents | fabd461f883f |
children | 411be0f9d82b |
files | usr/src/cmd/ypcmd/makedbm.c |
diffstat | 1 files changed, 5 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/cmd/ypcmd/makedbm.c Mon May 16 05:36:40 2011 +0100 +++ b/usr/src/cmd/ypcmd/makedbm.c Sun Jan 22 05:35:33 2012 +0000 @@ -33,8 +33,6 @@ * California. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #undef NULL #include <stdio.h> #include <sys/types.h> @@ -128,7 +126,7 @@ char *last_slash, *next_to_last_slash; char *infilename, *outfilename, *mastername, *domainname, *interdomain_bind, *security, *lower_case_keys; - char *key_sep = DEFAULT_SEP; + char key_sep[] = DEFAULT_SEP; char local_host[MAX_MASTER_NAME]; int cnt, i; DBM *fdb; @@ -179,14 +177,14 @@ security = argv[0]; break; case 'S' : - strcpy(key_sep, argv[1]); - argv++; - argc--; - if (strlen(key_sep) != 1) { + if (strlen(argv[1]) != 1) { fprintf(stderr, "bad separator\n"); usage(); } + key_sep[0] = argv[1][0]; + argv++; + argc--; break; case 'D' : num_del_to_match = atoi(argv[1]);