From fb90d67b2fe8fd4017e9f55911ceb9dfa06f36e4 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Sun, 29 Aug 2010 19:48:52 +0000 Subject: 2010-08-29 Joel Sherrill * libcsupport/src/getlogin.c: Modify to use strncpy() on all paths. --- cpukit/ChangeLog | 4 ++++ cpukit/libcsupport/src/getlogin.c | 13 ++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index 6cfceebccc..40df254d4f 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,7 @@ +2010-08-29 Joel Sherrill + + * libcsupport/src/getlogin.c: Modify to use strncpy() on all paths. + 2010-08-28 Joel Sherrill PR 1694/shell diff --git a/cpukit/libcsupport/src/getlogin.c b/cpukit/libcsupport/src/getlogin.c index 8515a75ed5..f98e7ca9e0 100644 --- a/cpukit/libcsupport/src/getlogin.c +++ b/cpukit/libcsupport/src/getlogin.c @@ -41,6 +41,7 @@ int getlogin_r( ) { struct passwd *pw; + char *pname; if ( !name ) return EFAULT; @@ -48,11 +49,13 @@ int getlogin_r( if ( namesize < LOGIN_NAME_MAX ) return ERANGE; + /* Set the pointer to a default name */ + pname = ""; + pw = getpwuid(getuid()); - if ( !pw ) { - strcpy( name, "" ); - } else { - strncpy( name, pw->pw_name, LOGIN_NAME_MAX ); - } + if ( pw ) + pname = pw->pw_name; + + strncpy( name, pname, LOGIN_NAME_MAX ); return 0; } -- cgit v1.2.3