From cd70f1660d6daf973e17961d9b668043eb43d87f Mon Sep 17 00:00:00 2001 From: Jon Trulson Date: Sun, 1 Apr 2018 14:16:18 -0600 Subject: [PATCH] dthelp/Initialize.c: coverity CID 89569; unbounded src buf --- cde/programs/dthelp/dthelpprint/Initialize.c | 43 +++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/cde/programs/dthelp/dthelpprint/Initialize.c b/cde/programs/dthelp/dthelpprint/Initialize.c index acdde63c..25c5f76a 100644 --- a/cde/programs/dthelp/dthelpprint/Initialize.c +++ b/cde/programs/dthelp/dthelpprint/Initialize.c @@ -34,15 +34,17 @@ $COPYRIGHT$: (c) Copyright 1993, 1994 Unix System Labs, Inc., a subsidiary of Novell, Inc. ==$END$==============================================================*/ #endif /*DOC*/ - + #include #include #include +#include #include #include #include #include /* MAXPATHLEN */ #include /* mkdir */ +#include #include /* _XGetHostname() */ @@ -623,29 +625,30 @@ static char *GetHomeDir ( char *dest) { /*$CODE$*/ uid_t uid; - extern char *getenv(); - extern uid_t getuid(); - extern struct passwd *getpwuid(), *getpwnam(); struct passwd *pw; - register char *ptr; + char *ptr; - if((ptr = getenv("HOME")) != NULL) + if((ptr = getenv("HOME")) != NULL) { - (void) strcpy(dest, ptr); - } - else + snprintf(dest, MAXPATHLEN, "%s", ptr); + } + else { - if((ptr = getenv("USER")) != NULL) - { - pw = getpwnam(ptr); - } - else - { - uid = getuid(); - pw = getpwuid(uid); - } - if (pw) (void) strcpy(dest, pw->pw_dir); - else *dest = '\0'; + if((ptr = getenv("USER")) != NULL) + { + char user[MAXPATHLEN]; + snprintf(user, MAXPATHLEN, "%s", ptr); + pw = getpwnam(user); + } + else + { + uid = getuid(); + pw = getpwuid(uid); + } + if (pw) + snprintf(dest, MAXPATHLEN, "%s", pw->pw_dir); + else + *dest = '\0'; } return dest; } /*$END$*/ -- 2.25.1