From 7f24a0e64774e6566242f44b0f06ab06607d0c97 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 16:18:56 +1100 Subject: - (dtucker) [openbsd-compat/{LOTS}] Move the "OPENBSD ORIGINAL" markers to after the copyright notices. Having them at the top next to the CVSIDs guarantees a conflict for each and every sync. --- openbsd-compat/basename.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'openbsd-compat/basename.c') diff --git a/openbsd-compat/basename.c b/openbsd-compat/basename.c index 552dc1e1c..5171cd64c 100644 --- a/openbsd-compat/basename.c +++ b/openbsd-compat/basename.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/gen/basename.c */ - /* $OpenBSD: basename.c,v 1.11 2003/06/17 21:56:23 millert Exp $ */ /* @@ -18,6 +16,8 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/* OPENBSD ORIGINAL: lib/libc/gen/basename.c */ + #include "includes.h" #ifndef HAVE_BASENAME -- cgit v1.2.3 From ad1dada0b4c2d450346984c88e3bc74cdfe2a888 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 16:42:51 +1100 Subject: - (dtucker) [openbsd-compat/basename.c] Update from OpenBSD 1.11 -> 1.14. Removal of rcsid, will no longer strlcpy parts of the string. --- ChangeLog | 4 +++- openbsd-compat/basename.c | 35 ++++++++++++++++++----------------- 2 files changed, 21 insertions(+), 18 deletions(-) (limited to 'openbsd-compat/basename.c') diff --git a/ChangeLog b/ChangeLog index 5a1be997f..a484b95ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,6 +21,8 @@ - (dtucker) [openbsd-compat/sigact.h] Add "OPENBSD ORIGINAL" marker. - (dtucker) [openbsd-compat/strmode.c] Update from OpenBSD 1.5 -> 1.7. Removal of rcsid, "whiteout" inode type. + - (dtucker) [openbsd-compat/basename.c] Update from OpenBSD 1.11 -> 1.14. + Removal of rcsid, will no longer strlcpy parts of the string. 20051105 - (djm) OpenBSD CVS Sync @@ -3263,4 +3265,4 @@ - (djm) Trim deprecated options from INSTALL. Mention UsePAM - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu -$Id: ChangeLog,v 1.3965 2005/11/10 05:38:54 dtucker Exp $ +$Id: ChangeLog,v 1.3966 2005/11/10 05:42:51 dtucker Exp $ diff --git a/openbsd-compat/basename.c b/openbsd-compat/basename.c index 5171cd64c..ad040e139 100644 --- a/openbsd-compat/basename.c +++ b/openbsd-compat/basename.c @@ -1,7 +1,7 @@ -/* $OpenBSD: basename.c,v 1.11 2003/06/17 21:56:23 millert Exp $ */ +/* $OpenBSD: basename.c,v 1.14 2005/08/08 08:05:33 espie Exp $ */ /* - * Copyright (c) 1997 Todd C. Miller + * Copyright (c) 1997, 2004 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -21,31 +21,30 @@ #include "includes.h" #ifndef HAVE_BASENAME -#ifndef lint -static char rcsid[] = "$OpenBSD: basename.c,v 1.11 2003/06/17 21:56:23 millert Exp $"; -#endif /* not lint */ - char * basename(const char *path) { static char bname[MAXPATHLEN]; - register const char *endp, *startp; + size_t len; + const char *endp, *startp; /* Empty or NULL string gets treated as "." */ if (path == NULL || *path == '\0') { - (void)strlcpy(bname, ".", sizeof bname); - return(bname); + bname[0] = '.'; + bname[1] = '\0'; + return (bname); } - /* Strip trailing slashes */ + /* Strip any trailing slashes */ endp = path + strlen(path) - 1; while (endp > path && *endp == '/') endp--; - /* All slashes become "/" */ + /* All slashes becomes "/" */ if (endp == path && *endp == '/') { - (void)strlcpy(bname, "/", sizeof bname); - return(bname); + bname[0] = '/'; + bname[1] = '\0'; + return (bname); } /* Find the start of the base */ @@ -53,12 +52,14 @@ basename(const char *path) while (startp > path && *(startp - 1) != '/') startp--; - if (endp - startp + 2 > sizeof(bname)) { + len = endp - startp + 1; + if (len >= sizeof(bname)) { errno = ENAMETOOLONG; - return(NULL); + return (NULL); } - strlcpy(bname, startp, endp - startp + 2); - return(bname); + memcpy(bname, startp, len); + bname[len] = '\0'; + return (bname); } #endif /* !defined(HAVE_BASENAME) */ -- cgit v1.2.3