From 64ead485ac8fa10cb4db9c316e0c72c51a95e82e Mon Sep 17 00:00:00 2001 From: Tim Rice Date: Thu, 8 Sep 2005 21:56:33 -0700 Subject: - (tim) [defines.h openbsd-compat/port-uw.c] Add long password support to OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ --- openbsd-compat/port-uw.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'openbsd-compat') diff --git a/openbsd-compat/port-uw.c b/openbsd-compat/port-uw.c index d881ff028..c64427121 100644 --- a/openbsd-compat/port-uw.c +++ b/openbsd-compat/port-uw.c @@ -25,7 +25,7 @@ #include "includes.h" -#if defined(HAVE_LIBIAF) && !defined(BROKEN_LIBIAF) +#ifdef HAVE_LIBIAF #ifdef HAVE_CRYPT_H #include #endif @@ -42,7 +42,6 @@ int sys_auth_passwd(Authctxt *authctxt, const char *password) { struct passwd *pw = authctxt->pw; - char *encrypted_password; char *salt; int result; @@ -55,21 +54,24 @@ sys_auth_passwd(Authctxt *authctxt, const char *password) /* Encrypt the candidate password using the proper salt. */ salt = (pw_password[0] && pw_password[1]) ? pw_password : "xx"; -#ifdef UNIXWARE_LONG_PASSWORDS - if (!nischeck(pw->pw_name)) - encrypted_password = bigcrypt(password, salt); - else -#endif /* UNIXWARE_LONG_PASSWORDS */ - encrypted_password = xcrypt(password, salt); /* * Authentication is accepted if the encrypted passwords * are identical. */ - result = (strcmp(encrypted_password, pw_password) == 0); +#ifdef UNIXWARE_LONG_PASSWORDS + if (!nischeck(pw->pw_name)) { + result = ((strcmp(bigcrypt(password, salt), pw_password) == 0) + || (strcmp(osr5bigcrypt(password, salt), pw_password) == 0)); + } + else +#endif /* UNIXWARE_LONG_PASSWORDS */ + result = (strcmp(xcrypt(password, salt), pw_password) == 0); +#if !defined(BROKEN_LIBIAF) if (authctxt->valid) free(pw_password); +#endif return(result); } @@ -114,6 +116,7 @@ nischeck(char *namep) functions that call shadow_pw() will need to free */ +#if !defined(BROKEN_LIBIAF) char * get_iaf_password(struct passwd *pw) { @@ -130,5 +133,6 @@ get_iaf_password(struct passwd *pw) else fatal("ia_openinfo: Unable to open the shadow passwd file"); } -#endif /* HAVE_LIBIAF && !BROKEN_LIBIAF */ +#endif /* !BROKEN_LIBIAF */ +#endif /* HAVE_LIBIAF */ -- cgit v1.2.3 From 6e4221129e58d792ec14025af823f654b5898cd6 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 30 Sep 2005 09:55:49 +1000 Subject: - (dtucker) [openbsd-compat/openbsd-compat.h] Bug #1096: Add prototype for strtoll. Patch from o.flebbe at science-computing.de. --- ChangeLog | 6 +++++- openbsd-compat/openbsd-compat.h | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 063e68973..0dbda414b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +20050930 + - (dtucker) [openbsd-compat/openbsd-compat.h] Bug #1096: Add prototype + for strtoll. Patch from o.flebbe at science-computing.de. + 20050929 - (dtucker) [monitor_wrap.c] Remove duplicate definition of loginmsg introduced during sync. @@ -3029,4 +3033,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.3899 2005/09/29 12:01:10 dtucker Exp $ +$Id: ChangeLog,v 1.3900 2005/09/29 23:55:49 dtucker Exp $ diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h index ba68bc27e..dda558ffe 100644 --- a/openbsd-compat/openbsd-compat.h +++ b/openbsd-compat/openbsd-compat.h @@ -1,4 +1,4 @@ -/* $Id: openbsd-compat.h,v 1.30 2005/08/26 20:15:20 tim Exp $ */ +/* $Id: openbsd-compat.h,v 1.31 2005/09/29 23:55:50 dtucker Exp $ */ /* * Copyright (c) 1999-2003 Damien Miller. All rights reserved. @@ -152,6 +152,10 @@ int openpty(int *, int *, char *, struct termios *, struct winsize *); int snprintf(char *, size_t, const char *, ...); #endif +#ifndef HAVE_STRTOLL +long long strtoll(const char *, char **, int); +#endif + #ifndef HAVE_STRTONUM long long strtonum(const char *, long long, long long, const char **); #endif -- cgit v1.2.3 From 9ac1a65acb80ac607eaabcba4c9ea4e0182d8a02 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Sun, 9 Oct 2005 11:40:03 +1000 Subject: - (dtucker) [configure.ac defines.h openbsd-compat/vis.{c,h}] Sync current versions from OpenBSD. ok djm@ --- ChangeLog | 6 +++++- configure.ac | 3 ++- defines.h | 6 +++++- openbsd-compat/vis.c | 58 ++++++++++++++++++++-------------------------------- openbsd-compat/vis.h | 11 +++++++--- 5 files changed, 42 insertions(+), 42 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index c8e49798f..ac839d612 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +20051009 + - (dtucker) [configure.ac defines.h openbsd-compat/vis.{c,h}] Sync current + versions from OpenBSD. ok djm@ + 20051008 - (dtucker) [configure.ac] Bug #1098: define $MAIL for HP-UX; report from brian.smith at agilent com. @@ -3096,4 +3100,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.3918 2005/10/08 06:21:19 djm Exp $ +$Id: ChangeLog,v 1.3919 2005/10/09 01:40:03 dtucker Exp $ diff --git a/configure.ac b/configure.ac index ee0640860..bd0352a8a 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# $Id: configure.ac,v 1.300 2005/10/08 06:21:20 djm Exp $ +# $Id: configure.ac,v 1.301 2005/10/09 01:40:03 dtucker Exp $ # # Copyright (c) 1999-2004 Damien Miller # @@ -418,6 +418,7 @@ mips-sony-bsd|mips-sony-newsos4) ;; *-*-openbsd*) AC_DEFINE(HAVE_ATTRIBUTE__SENTINEL__, 1, [OpenBSD's gcc has sentinel]) + AC_DEFINE(HAVE_ATTRIBUTE__BOUNDED__, 1, [OpenBSD's gcc has bounded]) ;; *-*-solaris*) if test "x$withval" != "xno" ; then diff --git a/defines.h b/defines.h index 43a642220..92ebd2697 100644 --- a/defines.h +++ b/defines.h @@ -25,7 +25,7 @@ #ifndef _DEFINES_H #define _DEFINES_H -/* $Id: defines.h,v 1.128 2005/09/09 05:04:59 tim Exp $ */ +/* $Id: defines.h,v 1.129 2005/10/09 01:40:04 dtucker Exp $ */ /* Constants */ @@ -450,6 +450,10 @@ struct winsize { # define __sentinel__ #endif +#if !defined(HAVE_ATTRIBUTE__BOUNDED__) && !defined(__bounded__) +# define __bounded__(x, y, z) +#endif + /* *-*-nto-qnx doesn't define this macro in the system headers */ #ifdef MISSING_HOWMANY # define howmany(x,y) (((x)+((y)-1))/(y)) diff --git a/openbsd-compat/vis.c b/openbsd-compat/vis.c index 1fb7a01e3..52d19ac55 100644 --- a/openbsd-compat/vis.c +++ b/openbsd-compat/vis.c @@ -1,5 +1,6 @@ /* OPENBSD ORIGINAL: lib/libc/gen/vis.c */ +/* $OpenBSD: vis.c,v 1.19 2005/09/01 17:15:49 millert Exp $ */ /*- * Copyright (c) 1989, 1993 * The Regents of the University of California. All rights reserved. @@ -28,36 +29,32 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ + #include "includes.h" #if !defined(HAVE_STRNVIS) -#if defined(LIBC_SCCS) && !defined(lint) -static char rcsid[] = "$OpenBSD: vis.c,v 1.12 2003/06/02 20:18:35 millert Exp $"; -#endif /* LIBC_SCCS and not lint */ - #include #include #include "vis.h" #define isoctal(c) (((u_char)(c)) >= '0' && ((u_char)(c)) <= '7') -#define isvisible(c) (((u_int)(c) <= UCHAR_MAX && isascii((u_char)(c)) && \ - isgraph((u_char)(c))) || \ - ((flag & VIS_SP) == 0 && (c) == ' ') || \ - ((flag & VIS_TAB) == 0 && (c) == '\t') || \ - ((flag & VIS_NL) == 0 && (c) == '\n') || \ - ((flag & VIS_SAFE) && ((c) == '\b' || \ - (c) == '\007' || (c) == '\r' || \ - isgraph((u_char)(c))))) +#define isvisible(c) \ + (((u_int)(c) <= UCHAR_MAX && isascii((u_char)(c)) && \ + (((c) != '*' && (c) != '?' && (c) != '[' && (c) != '#') || \ + (flag & VIS_GLOB) == 0) && isgraph((u_char)(c))) || \ + ((flag & VIS_SP) == 0 && (c) == ' ') || \ + ((flag & VIS_TAB) == 0 && (c) == '\t') || \ + ((flag & VIS_NL) == 0 && (c) == '\n') || \ + ((flag & VIS_SAFE) && ((c) == '\b' || \ + (c) == '\007' || (c) == '\r' || \ + isgraph((u_char)(c))))) /* * vis - visually encode characters */ char * -vis(dst, c, flag, nextc) - register char *dst; - int c, nextc; - register int flag; +vis(char *dst, int c, int flag, int nextc) { if (isvisible(c)) { *dst++ = c; @@ -111,7 +108,8 @@ vis(dst, c, flag, nextc) goto done; } } - if (((c & 0177) == ' ') || (flag & VIS_OCTAL)) { + if (((c & 0177) == ' ') || (flag & VIS_OCTAL) || + ((flag & VIS_GLOB) && (c == '*' || c == '?' || c == '[' || c == '#'))) { *dst++ = '\\'; *dst++ = ((u_char)c >> 6 & 07) + '0'; *dst++ = ((u_char)c >> 3 & 07) + '0'; @@ -124,7 +122,7 @@ vis(dst, c, flag, nextc) c &= 0177; *dst++ = 'M'; } - if (iscntrl(c)) { + if (iscntrl((u_char)c)) { *dst++ = '^'; if (c == 0177) *dst++ = '?'; @@ -153,12 +151,9 @@ done: * This is useful for encoding a block of data. */ int -strvis(dst, src, flag) - register char *dst; - register const char *src; - int flag; +strvis(char *dst, const char *src, int flag) { - register char c; + char c; char *start; for (start = dst; (c = *src);) @@ -168,16 +163,11 @@ strvis(dst, src, flag) } int -strnvis(dst, src, siz, flag) - char *dst; - const char *src; - size_t siz; - int flag; +strnvis(char *dst, const char *src, size_t siz, int flag) { - char c; char *start, *end; char tbuf[5]; - int i; + int c, i; i = 0; for (start = dst, end = start + siz - 1; (c = *src) && dst < end; ) { @@ -217,13 +207,9 @@ strnvis(dst, src, siz, flag) } int -strvisx(dst, src, len, flag) - register char *dst; - register const char *src; - register size_t len; - int flag; +strvisx(char *dst, const char *src, size_t len, int flag) { - register char c; + char c; char *start; for (start = dst; len > 1; len--) { diff --git a/openbsd-compat/vis.h b/openbsd-compat/vis.h index 663355a24..0588f68da 100644 --- a/openbsd-compat/vis.h +++ b/openbsd-compat/vis.h @@ -1,6 +1,6 @@ /* OPENBSD ORIGINAL: include/vis.h */ -/* $OpenBSD: vis.h,v 1.6 2003/06/02 19:34:12 millert Exp $ */ +/* $OpenBSD: vis.h,v 1.11 2005/08/09 19:38:31 millert Exp $ */ /* $NetBSD: vis.h,v 1.4 1994/10/26 00:56:41 cgd Exp $ */ /*- @@ -63,6 +63,7 @@ * other */ #define VIS_NOSLASH 0x40 /* inhibit printing '\' */ +#define VIS_GLOB 0x100 /* encode glob(3) magics and '#' */ /* * unvis return codes @@ -80,10 +81,14 @@ char *vis(char *, int, int, int); int strvis(char *, const char *, int); -int strnvis(char *, const char *, size_t, int); -int strvisx(char *, const char *, size_t, int); +int strnvis(char *, const char *, size_t, int) + __attribute__ ((__bounded__(__string__,1,3))); +int strvisx(char *, const char *, size_t, int) + __attribute__ ((__bounded__(__string__,1,3))); int strunvis(char *, const char *); int unvis(char *, char, int *, int); +ssize_t strnunvis(char *, const char *, size_t) + __attribute__ ((__bounded__(__string__,1,3))); #endif /* !_VIS_H_ */ -- cgit v1.2.3 From d32e293c045025b80892e8b05285ca9617d83ef6 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Wed, 2 Nov 2005 09:07:31 +1100 Subject: - (dtucker) [openbsd-compat/bsd-misc.c] Bug #1108: fix broken strdup(). Reported by olavi at ipunplugged.com and antoine.brodin at laposte.net via FreeBSD. --- ChangeLog | 7 ++++++- openbsd-compat/bsd-misc.c | 9 +++------ 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index de9bd9f29..cf8031250 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +20051102 + - (dtucker) [openbsd-compat/bsd-misc.c] Bug #1108: fix broken strdup(). + Reported by olavi at ipunplugged.com and antoine.brodin at laposte.net + via FreeBSD. + 20051030 - (djm) [contrib/suse/openssh.spec contrib/suse/rc. sshd contrib/suse/sysconfig.ssh] Bug #1106: Updated SuSE spec and init @@ -3125,4 +3130,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.3925 2005/10/30 04:31:55 dtucker Exp $ +$Id: ChangeLog,v 1.3926 2005/11/01 22:07:31 dtucker Exp $ diff --git a/openbsd-compat/bsd-misc.c b/openbsd-compat/bsd-misc.c index 6ba9bd986..d32b054d7 100644 --- a/openbsd-compat/bsd-misc.c +++ b/openbsd-compat/bsd-misc.c @@ -18,7 +18,7 @@ #include "includes.h" #include "xmalloc.h" -RCSID("$Id: bsd-misc.c,v 1.27 2005/05/27 11:13:41 dtucker Exp $"); +RCSID("$Id: bsd-misc.c,v 1.28 2005/11/01 22:07:31 dtucker Exp $"); #ifndef HAVE___PROGNAME char *__progname; @@ -223,10 +223,7 @@ strdup(const char *str) len = strlen(str) + 1; cp = malloc(len); if (cp != NULL) - if (strlcpy(cp, str, len) != len) { - free(cp); - return NULL; - } - return cp; + return(memcpy(cp, str, len)); + return NULL; } #endif -- cgit v1.2.3 From 9b59ada7ca95a7ab42c49ae7b7cd6ff713b1bea0 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 5 Nov 2005 16:56:52 +1100 Subject: - (djm) [openbsd-compat/getrrsetbyname.c] Sync to latest OpenBSD version, resolving memory leak bz#1111 reported by kremenek AT cs.stanford.edu; ok dtucker@ --- ChangeLog | 5 +- openbsd-compat/getrrsetbyname.c | 112 ++++++++++++++++++++++------------------ 2 files changed, 66 insertions(+), 51 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 1da05ea8a..8270f8c68 100644 --- a/ChangeLog +++ b/ChangeLog @@ -103,6 +103,9 @@ Fix leaks in error paths, bz #1109 and #1110 reported by kremenek AT cs.stanford.edu; ok dtucker@ - (dtucker) [README.platform] Add PAM section. + - (djm) [openbsd-compat/getrrsetbyname.c] Sync to latest OpenBSD version, + resolving memory leak bz#1111 reported by kremenek AT cs.stanford.edu; + ok dtucker@ 20051102 - (dtucker) [openbsd-compat/bsd-misc.c] Bug #1108: fix broken strdup(). @@ -3236,4 +3239,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.3953 2005/11/05 05:28:35 dtucker Exp $ +$Id: ChangeLog,v 1.3954 2005/11/05 05:56:52 djm Exp $ diff --git a/openbsd-compat/getrrsetbyname.c b/openbsd-compat/getrrsetbyname.c index 2016ffe31..973e480b4 100644 --- a/openbsd-compat/getrrsetbyname.c +++ b/openbsd-compat/getrrsetbyname.c @@ -1,6 +1,6 @@ /* OPENBSD ORIGINAL: lib/libc/net/getrrsetbyname.c */ -/* $OpenBSD: getrrsetbyname.c,v 1.7 2003/03/07 07:34:14 itojun Exp $ */ +/* $OpenBSD: getrrsetbyname.c,v 1.10 2005/03/30 02:58:28 tedu Exp $ */ /* * Copyright (c) 2001 Jakob Schlyter. All rights reserved. @@ -51,48 +51,18 @@ #include "getrrsetbyname.h" -#define ANSWER_BUFFER_SIZE 1024*64 - #if defined(HAVE_DECL_H_ERRNO) && !HAVE_DECL_H_ERRNO extern int h_errno; #endif -struct dns_query { - char *name; - u_int16_t type; - u_int16_t class; - struct dns_query *next; -}; - -struct dns_rr { - char *name; - u_int16_t type; - u_int16_t class; - u_int16_t ttl; - u_int16_t size; - void *rdata; - struct dns_rr *next; -}; - -struct dns_response { - HEADER header; - struct dns_query *query; - struct dns_rr *answer; - struct dns_rr *authority; - struct dns_rr *additional; -}; - -static struct dns_response *parse_dns_response(const u_char *, int); -static struct dns_query *parse_dns_qsection(const u_char *, int, - const u_char **, int); -static struct dns_rr *parse_dns_rrsection(const u_char *, int, const u_char **, - int); - -static void free_dns_query(struct dns_query *); -static void free_dns_rr(struct dns_rr *); -static void free_dns_response(struct dns_response *); +/* We don't need multithread support here */ +#ifdef _THREAD_PRIVATE +# undef _THREAD_PRIVATE +#endif +#define _THREAD_PRIVATE(a,b,c) (c) +struct __res_state _res; -static int count_dns_rr(struct dns_rr *, u_int16_t, u_int16_t); +/* Necessary functions and macros */ /* * Inline versions of get/put short/long. Pointer is advanced. @@ -162,14 +132,56 @@ _getlong(msgp) u_int32_t _getlong(register const u_char *); #endif +/* ************** */ + +#define ANSWER_BUFFER_SIZE 1024*64 + +struct dns_query { + char *name; + u_int16_t type; + u_int16_t class; + struct dns_query *next; +}; + +struct dns_rr { + char *name; + u_int16_t type; + u_int16_t class; + u_int16_t ttl; + u_int16_t size; + void *rdata; + struct dns_rr *next; +}; + +struct dns_response { + HEADER header; + struct dns_query *query; + struct dns_rr *answer; + struct dns_rr *authority; + struct dns_rr *additional; +}; + +static struct dns_response *parse_dns_response(const u_char *, int); +static struct dns_query *parse_dns_qsection(const u_char *, int, + const u_char **, int); +static struct dns_rr *parse_dns_rrsection(const u_char *, int, const u_char **, + int); + +static void free_dns_query(struct dns_query *); +static void free_dns_rr(struct dns_rr *); +static void free_dns_response(struct dns_response *); + +static int count_dns_rr(struct dns_rr *, u_int16_t, u_int16_t); + int getrrsetbyname(const char *hostname, unsigned int rdclass, unsigned int rdtype, unsigned int flags, struct rrsetinfo **res) { + struct __res_state *_resp = _THREAD_PRIVATE(_res, _res, &_res); int result; struct rrsetinfo *rrset = NULL; - struct dns_response *response; + struct dns_response *response = NULL; struct dns_rr *rr; struct rdatainfo *rdata; int length; @@ -195,19 +207,19 @@ getrrsetbyname(const char *hostname, unsigned int rdclass, } /* initialize resolver */ - if ((_res.options & RES_INIT) == 0 && res_init() == -1) { + if ((_resp->options & RES_INIT) == 0 && res_init() == -1) { result = ERRSET_FAIL; goto fail; } #ifdef DEBUG - _res.options |= RES_DEBUG; + _resp->options |= RES_DEBUG; #endif /* DEBUG */ #ifdef RES_USE_DNSSEC /* turn on DNSSEC if EDNS0 is configured */ - if (_res.options & RES_USE_EDNS0) - _res.options |= RES_USE_DNSSEC; + if (_resp->options & RES_USE_EDNS0) + _resp->options |= RES_USE_DNSSEC; #endif /* RES_USE_DNSEC */ /* make query */ @@ -250,20 +262,16 @@ getrrsetbyname(const char *hostname, unsigned int rdclass, rrset->rri_ttl = response->answer->ttl; rrset->rri_nrdatas = response->header.ancount; -#ifdef HAVE_HEADER_AD /* check for authenticated data */ if (response->header.ad == 1) rrset->rri_flags |= RRSET_VALIDATED; -#endif /* copy name from answer section */ - length = strlen(response->answer->name); - rrset->rri_name = malloc(length + 1); + rrset->rri_name = strdup(response->answer->name); if (rrset->rri_name == NULL) { result = ERRSET_NOMEMORY; goto fail; } - strlcpy(rrset->rri_name, response->answer->name, length + 1); /* count answers */ rrset->rri_nrdatas = count_dns_rr(response->answer, rrset->rri_rdclass, @@ -281,7 +289,7 @@ getrrsetbyname(const char *hostname, unsigned int rdclass, /* allocate memory for signatures */ rrset->rri_sigs = calloc(rrset->rri_nsigs, sizeof(struct rdatainfo)); - if (rrset->rri_nsigs > 0 && rrset->rri_sigs == NULL) { + if (rrset->rri_sigs == NULL) { result = ERRSET_NOMEMORY; goto fail; } @@ -311,6 +319,7 @@ getrrsetbyname(const char *hostname, unsigned int rdclass, memcpy(rdata->rdi_data, rr->rdata, rr->size); } } + free_dns_response(response); *res = rrset; return (ERRSET_SUCCESS); @@ -318,6 +327,8 @@ getrrsetbyname(const char *hostname, unsigned int rdclass, fail: if (rrset != NULL) freerrset(rrset); + if (response != NULL) + free_dns_response(response); return (result); } @@ -467,7 +478,8 @@ parse_dns_qsection(const u_char *answer, int size, const u_char **cp, int count) } static struct dns_rr * -parse_dns_rrsection(const u_char *answer, int size, const u_char **cp, int count) +parse_dns_rrsection(const u_char *answer, int size, const u_char **cp, + int count) { struct dns_rr *head, *curr, *prev; int i, length; -- cgit v1.2.3 From b8c89d14bbd6ea20e1ef785adcfd27d067009f3d Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 10:10:10 +1100 Subject: - (dtucker) [openbsd-compat/getenv.c] Merge changes for __findenv from OpenBSD getenv.c revs 1.4 - 1.8 (ANSIfication of arguments, removal of "register"). --- ChangeLog | 7 ++++++- openbsd-compat/setenv.c | 12 ++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 8270f8c68..1ce552d71 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +20051110 + - (dtucker) [openbsd-compat/getenv.c] Merge changes for __findenv from + OpenBSD getenv.c revs 1.4 - 1.8 (ANSIfication of arguments, removal of + "register"). + 20051105 - (djm) OpenBSD CVS Sync - markus@cvs.openbsd.org 2005/10/07 11:13:57 @@ -3239,4 +3244,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.3954 2005/11/05 05:56:52 djm Exp $ +$Id: ChangeLog,v 1.3955 2005/11/09 23:10:10 dtucker Exp $ diff --git a/openbsd-compat/setenv.c b/openbsd-compat/setenv.c index c3a86c651..9f746ded0 100644 --- a/openbsd-compat/setenv.c +++ b/openbsd-compat/setenv.c @@ -41,6 +41,8 @@ static char *rcsid = "$OpenBSD: setenv.c,v 1.6 2003/06/02 20:18:38 millert Exp $ char *__findenv(const char *name, int *offset); +/* OpenSSH Portable: __findenv is from getenv.c rev 1.8 */ + /* * __findenv -- * Returns pointer to value associated with name, if any, else NULL. @@ -51,14 +53,12 @@ char *__findenv(const char *name, int *offset); * This routine *should* be a static; don't use it. */ char * -__findenv(name, offset) - register const char *name; - int *offset; +__findenv(const char *name, int *offset) { extern char **environ; - register int len, i; - register const char *np; - register char **p, *cp; + int len, i; + const char *np; + char **p, *cp; if (name == NULL || environ == NULL) return (NULL); -- cgit v1.2.3 From 32b531067dbfaf1570faad9abadc359b1675e324 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 10:13:06 +1100 Subject: - (dtucker) [openbsd-compat/getenv.c] Make __findenv static, remove unnecessary prototype. --- ChangeLog | 4 +++- openbsd-compat/setenv.c | 8 ++------ 2 files changed, 5 insertions(+), 7 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 1ce552d71..7b9b6a516 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,8 @@ - (dtucker) [openbsd-compat/getenv.c] Merge changes for __findenv from OpenBSD getenv.c revs 1.4 - 1.8 (ANSIfication of arguments, removal of "register"). + - (dtucker) [openbsd-compat/getenv.c] Make __findenv static, remove + unnecessary prototype. 20051105 - (djm) OpenBSD CVS Sync @@ -3244,4 +3246,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.3955 2005/11/09 23:10:10 dtucker Exp $ +$Id: ChangeLog,v 1.3956 2005/11/09 23:13:06 dtucker Exp $ diff --git a/openbsd-compat/setenv.c b/openbsd-compat/setenv.c index 9f746ded0..7894c485a 100644 --- a/openbsd-compat/setenv.c +++ b/openbsd-compat/setenv.c @@ -39,9 +39,7 @@ static char *rcsid = "$OpenBSD: setenv.c,v 1.6 2003/06/02 20:18:38 millert Exp $ #include #include -char *__findenv(const char *name, int *offset); - -/* OpenSSH Portable: __findenv is from getenv.c rev 1.8 */ +/* OpenSSH Portable: __findenv is from getenv.c rev 1.8, made static */ /* * __findenv -- @@ -49,10 +47,8 @@ char *__findenv(const char *name, int *offset); * Sets offset to be the offset of the name/value combination in the * environmental array, for use by setenv(3) and unsetenv(3). * Explicitly removes '=' in argument name. - * - * This routine *should* be a static; don't use it. */ -char * +static char * __findenv(const char *name, int *offset) { extern char **environ; -- cgit v1.2.3 From 063ba7455fa6c726771fe0d8495544a38c29fa51 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 10:38:45 +1100 Subject: - (dtucker) [openbsd-compat/setenv.c] Sync changes from OpenBSD setenv.c revs 1.7 - 1.9. --- ChangeLog | 8 ++++--- openbsd-compat/setenv.c | 62 ++++++++++++++++++------------------------------- 2 files changed, 28 insertions(+), 42 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 7b9b6a516..1ddf19340 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,11 @@ 20051110 - - (dtucker) [openbsd-compat/getenv.c] Merge changes for __findenv from + - (dtucker) [openbsd-compat/setenv.c] Merge changes for __findenv from OpenBSD getenv.c revs 1.4 - 1.8 (ANSIfication of arguments, removal of "register"). - - (dtucker) [openbsd-compat/getenv.c] Make __findenv static, remove + - (dtucker) [openbsd-compat/setenv.c] Make __findenv static, remove unnecessary prototype. + - (dtucker) [openbsd-compat/setenv.c] Sync changes from OpenBSD setenv.c + revs 1.7 - 1.9. 20051105 - (djm) OpenBSD CVS Sync @@ -3246,4 +3248,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.3956 2005/11/09 23:13:06 dtucker Exp $ +$Id: ChangeLog,v 1.3957 2005/11/09 23:38:45 dtucker Exp $ diff --git a/openbsd-compat/setenv.c b/openbsd-compat/setenv.c index 7894c485a..93a681152 100644 --- a/openbsd-compat/setenv.c +++ b/openbsd-compat/setenv.c @@ -1,5 +1,6 @@ /* OPENBSD ORIGINAL: lib/libc/stdlib/setenv.c */ +/* $OpenBSD: setenv.c,v 1.9 2005/08/08 08:05:37 espie Exp $ */ /* * Copyright (c) 1987 Regents of the University of California. * All rights reserved. @@ -32,15 +33,12 @@ #include "includes.h" #if !defined(HAVE_SETENV) || !defined(HAVE_UNSETENV) -#if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: setenv.c,v 1.6 2003/06/02 20:18:38 millert Exp $"; -#endif /* LIBC_SCCS and not lint */ - #include #include -/* OpenSSH Portable: __findenv is from getenv.c rev 1.8, made static */ +extern char **environ; +/* OpenSSH Portable: __findenv is from getenv.c rev 1.8, made static */ /* * __findenv -- * Returns pointer to value associated with name, if any, else NULL. @@ -80,14 +78,10 @@ __findenv(const char *name, int *offset) * "value". If rewrite is set, replace any current value. */ int -setenv(name, value, rewrite) - register const char *name; - register const char *value; - int rewrite; +setenv(const char *name, const char *value, int rewrite) { - extern char **environ; - static int alloced; /* if allocated space before */ - register char *C; + static char **lastenv; /* last value of environ */ + char *C; int l_value, offset; if (*value == '=') /* no `=' in value */ @@ -102,30 +96,23 @@ setenv(name, value, rewrite) return (0); } } else { /* create new slot */ - register int cnt; - register char **P; + size_t cnt; + char **P; - for (P = environ, cnt = 0; *P; ++P, ++cnt); - if (alloced) { /* just increase size */ - P = (char **)realloc((void *)environ, - (size_t)(sizeof(char *) * (cnt + 2))); - if (!P) - return (-1); - environ = P; - } - else { /* get new space */ - alloced = 1; /* copy old entries into it */ - P = (char **)malloc((size_t)(sizeof(char *) * - (cnt + 2))); - if (!P) - return (-1); - memmove(P, environ, cnt * sizeof(char *)); - environ = P; - } - environ[cnt + 1] = NULL; + for (P = environ; *P != NULL; P++) + ; + cnt = P - environ; + P = (char **)realloc(lastenv, sizeof(char *) * (cnt + 2)); + if (!P) + return (-1); + if (lastenv != environ) + memcpy(P, environ, cnt * sizeof(char *)); + lastenv = environ = P; offset = cnt; + environ[cnt + 1] = NULL; } - for (C = (char *)name; *C && *C != '='; ++C); /* no `=' in name */ + for (C = (char *)name; *C && *C != '='; ++C) + ; /* no `=' in name */ if (!(environ[offset] = /* name + `=' + value */ malloc((size_t)((int)(C - name) + l_value + 2)))) return (-1); @@ -143,15 +130,12 @@ setenv(name, value, rewrite) * Delete environmental variable "name". */ void -unsetenv(name) - const char *name; +unsetenv(const char *name) { - extern char **environ; - register char **P; + char **P; int offset; - char *__findenv(); - while (__findenv(name, &offset)) /* if set multiple times */ + while (__findenv(name, &offset)) /* if set multiple times */ for (P = &environ[offset];; ++P) if (!(*P = *(P + 1))) break; -- cgit v1.2.3 From e5a2b5288dea7f17373d97f4e81972de6935ae07 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 15:56:44 +1100 Subject: - (dtucker) [openbsd-compat/getgrouplist.c] Sync OpenBSD revs 1.10 - 1.2 (ANSI prototypes, removal of "register"). --- ChangeLog | 4 +++- openbsd-compat/getgrouplist.c | 15 ++++----------- 2 files changed, 7 insertions(+), 12 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 7114edc57..28ee1d6c4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,6 +10,8 @@ Patch from djm@. - (dtucker) [configure.ac] Disable pointer-sign warnings on gcc 4.0+ since they're not useful right now. Patch from djm@. + - (dtucker) [openbsd-compat/getgrouplist.c] Sync OpenBSD revs 1.10 - 1.2 (ANSI + prototypes, removal of "register"). 20051105 - (djm) OpenBSD CVS Sync @@ -3252,4 +3254,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.3959 2005/11/10 03:46:48 dtucker Exp $ +$Id: ChangeLog,v 1.3960 2005/11/10 04:56:44 dtucker Exp $ diff --git a/openbsd-compat/getgrouplist.c b/openbsd-compat/getgrouplist.c index 59c164f44..2a2b8878b 100644 --- a/openbsd-compat/getgrouplist.c +++ b/openbsd-compat/getgrouplist.c @@ -1,5 +1,6 @@ /* OPENBSD ORIGINAL: lib/libc/gen/getgrouplist.c */ +/* $OpenBSD: getgrouplist.c,v 1.12 2005/08/08 08:05:34 espie Exp $ */ /* * Copyright (c) 1991, 1993 * The Regents of the University of California. All rights reserved. @@ -33,10 +34,6 @@ #ifndef HAVE_GETGROUPLIST -#if defined(LIBC_SCCS) && !defined(lint) -static char rcsid[] = "$OpenBSD: getgrouplist.c,v 1.9 2003/06/25 21:16:47 deraadt Exp $"; -#endif /* LIBC_SCCS and not lint */ - /* * get credential */ @@ -46,14 +43,10 @@ static char rcsid[] = "$OpenBSD: getgrouplist.c,v 1.9 2003/06/25 21:16:47 deraad #include int -getgrouplist(uname, agroup, groups, grpcnt) - const char *uname; - gid_t agroup; - register gid_t *groups; - int *grpcnt; +getgrouplist(const char *uname, gid_t agroup, gid_t *groups, int *grpcnt) { - register struct group *grp; - register int i, ngroups; + struct group *grp; + int i, ngroups; int ret, maxgroups; int bail; -- cgit v1.2.3 From 80c0d7eb885d244d4745b55a392ee07b03e41676 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 16:05:37 +1100 Subject: - (dtucker) [openbsd-compat/strlcat.c] Sync OpenBSD revs 1.11 - 1.12 (removal of "register"). --- ChangeLog | 4 +++- openbsd-compat/strlcat.c | 12 ++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 28ee1d6c4..0ea4054f9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,6 +12,8 @@ since they're not useful right now. Patch from djm@. - (dtucker) [openbsd-compat/getgrouplist.c] Sync OpenBSD revs 1.10 - 1.2 (ANSI prototypes, removal of "register"). + - (dtucker) [openbsd-compat/strlcat.c] Sync OpenBSD revs 1.11 - 1.12 (removal + of "register"). 20051105 - (djm) OpenBSD CVS Sync @@ -3254,4 +3256,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.3960 2005/11/10 04:56:44 dtucker Exp $ +$Id: ChangeLog,v 1.3961 2005/11/10 05:05:37 dtucker Exp $ diff --git a/openbsd-compat/strlcat.c b/openbsd-compat/strlcat.c index 70f01cb2a..8252f31af 100644 --- a/openbsd-compat/strlcat.c +++ b/openbsd-compat/strlcat.c @@ -1,6 +1,6 @@ /* OPENBSD ORIGINAL: lib/libc/string/strlcat.c */ -/* $OpenBSD: strlcat.c,v 1.11 2003/06/17 21:56:24 millert Exp $ */ +/* $OpenBSD: strlcat.c,v 1.13 2005/08/08 08:05:37 espie Exp $ */ /* * Copyright (c) 1998 Todd C. Miller @@ -21,10 +21,6 @@ #include "includes.h" #ifndef HAVE_STRLCAT -#if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: strlcat.c,v 1.11 2003/06/17 21:56:24 millert Exp $"; -#endif /* LIBC_SCCS and not lint */ - #include #include @@ -38,9 +34,9 @@ static char *rcsid = "$OpenBSD: strlcat.c,v 1.11 2003/06/17 21:56:24 millert Exp size_t strlcat(char *dst, const char *src, size_t siz) { - register char *d = dst; - register const char *s = src; - register size_t n = siz; + char *d = dst; + const char *s = src; + size_t n = siz; size_t dlen; /* Find the end of dst and adjust bytes left but don't go past end */ -- cgit v1.2.3 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. --- ChangeLog | 5 ++++- openbsd-compat/base64.c | 4 ++-- openbsd-compat/basename.c | 4 ++-- openbsd-compat/daemon.c | 4 ++-- openbsd-compat/dirname.c | 4 ++-- openbsd-compat/getcwd.c | 4 ++-- openbsd-compat/getgrouplist.c | 4 ++-- openbsd-compat/getopt.c | 4 ++-- openbsd-compat/getrrsetbyname.c | 4 ++-- openbsd-compat/glob.c | 4 ++-- openbsd-compat/glob.h | 4 ++-- openbsd-compat/inet_aton.c | 4 ++-- openbsd-compat/inet_ntoa.c | 4 ++-- openbsd-compat/inet_ntop.c | 4 ++-- openbsd-compat/mktemp.c | 4 ++-- openbsd-compat/readpassphrase.c | 4 ++-- openbsd-compat/readpassphrase.h | 4 ++-- openbsd-compat/realpath.c | 4 ++-- openbsd-compat/rresvport.c | 4 ++-- openbsd-compat/setenv.c | 4 ++-- openbsd-compat/sigact.c | 4 ++-- openbsd-compat/strlcat.c | 4 ++-- openbsd-compat/strlcpy.c | 4 ++-- openbsd-compat/strmode.c | 4 ++-- openbsd-compat/strsep.c | 4 ++-- openbsd-compat/strtoll.c | 4 ++-- openbsd-compat/strtonum.c | 4 ++-- openbsd-compat/strtoul.c | 4 ++-- openbsd-compat/sys-queue.h | 4 ++-- openbsd-compat/sys-tree.h | 4 ++-- openbsd-compat/vis.c | 4 ++-- openbsd-compat/vis.h | 4 ++-- 32 files changed, 66 insertions(+), 63 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 0ea4054f9..367127ebc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,9 @@ prototypes, removal of "register"). - (dtucker) [openbsd-compat/strlcat.c] Sync OpenBSD revs 1.11 - 1.12 (removal of "register"). + - (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. 20051105 - (djm) OpenBSD CVS Sync @@ -3256,4 +3259,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.3961 2005/11/10 05:05:37 dtucker Exp $ +$Id: ChangeLog,v 1.3962 2005/11/10 05:18:56 dtucker Exp $ diff --git a/openbsd-compat/base64.c b/openbsd-compat/base64.c index dcaa03e5d..6eadb5c10 100644 --- a/openbsd-compat/base64.c +++ b/openbsd-compat/base64.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/net/base64.c */ - /* $OpenBSD: base64.c,v 1.4 2002/01/02 23:00:10 deraadt Exp $ */ /* @@ -44,6 +42,8 @@ * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES. */ +/* OPENBSD ORIGINAL: lib/libc/net/base64.c */ + #include "includes.h" #if (!defined(HAVE_B64_NTOP) && !defined(HAVE___B64_NTOP)) || (!defined(HAVE_B64_PTON) && !defined(HAVE___B64_PTON)) 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 diff --git a/openbsd-compat/daemon.c b/openbsd-compat/daemon.c index c0be5fff9..89e75a99e 100644 --- a/openbsd-compat/daemon.c +++ b/openbsd-compat/daemon.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/gen/daemon.c */ - /*- * Copyright (c) 1990, 1993 * The Regents of the University of California. All rights reserved. @@ -29,6 +27,8 @@ * SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: lib/libc/gen/daemon.c */ + #include "includes.h" #ifndef HAVE_DAEMON diff --git a/openbsd-compat/dirname.c b/openbsd-compat/dirname.c index 25ab34dd6..e2cf81db3 100644 --- a/openbsd-compat/dirname.c +++ b/openbsd-compat/dirname.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/gen/dirname.c */ - /* $OpenBSD: dirname.c,v 1.10 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/dirname.c */ + #include "includes.h" #ifndef HAVE_DIRNAME diff --git a/openbsd-compat/getcwd.c b/openbsd-compat/getcwd.c index 19be59172..d58c03e0e 100644 --- a/openbsd-compat/getcwd.c +++ b/openbsd-compat/getcwd.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/gen/getcwd.c */ - /* * Copyright (c) 1989, 1991, 1993 * The Regents of the University of California. All rights reserved. @@ -29,6 +27,8 @@ * SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: lib/libc/gen/getcwd.c */ + #include "includes.h" #if !defined(HAVE_GETCWD) diff --git a/openbsd-compat/getgrouplist.c b/openbsd-compat/getgrouplist.c index 2a2b8878b..a57d7d388 100644 --- a/openbsd-compat/getgrouplist.c +++ b/openbsd-compat/getgrouplist.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/gen/getgrouplist.c */ - /* $OpenBSD: getgrouplist.c,v 1.12 2005/08/08 08:05:34 espie Exp $ */ /* * Copyright (c) 1991, 1993 @@ -30,6 +28,8 @@ * SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: lib/libc/gen/getgrouplist.c */ + #include "includes.h" #ifndef HAVE_GETGROUPLIST diff --git a/openbsd-compat/getopt.c b/openbsd-compat/getopt.c index f5ee6778d..5450e43d9 100644 --- a/openbsd-compat/getopt.c +++ b/openbsd-compat/getopt.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/stdlib/getopt.c */ - /* * Copyright (c) 1987, 1993, 1994 * The Regents of the University of California. All rights reserved. @@ -29,6 +27,8 @@ * SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: lib/libc/stdlib/getopt.c */ + #include "includes.h" #if !defined(HAVE_GETOPT) || !defined(HAVE_GETOPT_OPTRESET) diff --git a/openbsd-compat/getrrsetbyname.c b/openbsd-compat/getrrsetbyname.c index 973e480b4..8d571beea 100644 --- a/openbsd-compat/getrrsetbyname.c +++ b/openbsd-compat/getrrsetbyname.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/net/getrrsetbyname.c */ - /* $OpenBSD: getrrsetbyname.c,v 1.10 2005/03/30 02:58:28 tedu Exp $ */ /* @@ -45,6 +43,8 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/* OPENBSD ORIGINAL: lib/libc/net/getrrsetbyname.c */ + #include "includes.h" #ifndef HAVE_GETRRSETBYNAME diff --git a/openbsd-compat/glob.c b/openbsd-compat/glob.c index 7fafc8c40..e00db7079 100644 --- a/openbsd-compat/glob.c +++ b/openbsd-compat/glob.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/gen/glob.c */ - /* * Copyright (c) 1989, 1993 * The Regents of the University of California. All rights reserved. @@ -32,6 +30,8 @@ * SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: lib/libc/gen/glob.c */ + #include "includes.h" #include diff --git a/openbsd-compat/glob.h b/openbsd-compat/glob.h index 3428b2013..5d80073d3 100644 --- a/openbsd-compat/glob.h +++ b/openbsd-compat/glob.h @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: include/glob.h */ - /* $OpenBSD: glob.h,v 1.8 2003/06/02 19:34:12 millert Exp $ */ /* $NetBSD: glob.h,v 1.5 1994/10/26 00:55:56 cgd Exp $ */ @@ -37,6 +35,8 @@ * @(#)glob.h 8.1 (Berkeley) 6/2/93 */ +/* OPENBSD ORIGINAL: include/glob.h */ + #if !defined(HAVE_GLOB_H) || !defined(GLOB_HAS_ALTDIRFUNC) || \ !defined(GLOB_HAS_GL_MATCHC) diff --git a/openbsd-compat/inet_aton.c b/openbsd-compat/inet_aton.c index c141bcc68..355bf6bc9 100644 --- a/openbsd-compat/inet_aton.c +++ b/openbsd-compat/inet_aton.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/net/inet_addr.c */ - /* $OpenBSD: inet_addr.c,v 1.7 2003/06/02 20:18:35 millert Exp $ */ /* @@ -51,6 +49,8 @@ * --Copyright-- */ +/* OPENBSD ORIGINAL: lib/libc/net/inet_addr.c */ + #include "includes.h" #if !defined(HAVE_INET_ATON) diff --git a/openbsd-compat/inet_ntoa.c b/openbsd-compat/inet_ntoa.c index dc010dc53..16390b178 100644 --- a/openbsd-compat/inet_ntoa.c +++ b/openbsd-compat/inet_ntoa.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/net/inet_ntoa.c */ - /* * Copyright (c) 1983, 1993 * The Regents of the University of California. All rights reserved. @@ -29,6 +27,8 @@ * SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: lib/libc/net/inet_ntoa.c */ + #include "includes.h" #if defined(BROKEN_INET_NTOA) || !defined(HAVE_INET_NTOA) diff --git a/openbsd-compat/inet_ntop.c b/openbsd-compat/inet_ntop.c index 47796c370..c75a80d2b 100644 --- a/openbsd-compat/inet_ntop.c +++ b/openbsd-compat/inet_ntop.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/net/inet_ntop.c */ - /* $OpenBSD: inet_ntop.c,v 1.5 2002/08/23 16:27:31 itojun Exp $ */ /* Copyright (c) 1996 by Internet Software Consortium. @@ -18,6 +16,8 @@ * SOFTWARE. */ +/* OPENBSD ORIGINAL: lib/libc/net/inet_ntop.c */ + #include "includes.h" #ifndef HAVE_INET_NTOP diff --git a/openbsd-compat/mktemp.c b/openbsd-compat/mktemp.c index 969f69580..8071aa184 100644 --- a/openbsd-compat/mktemp.c +++ b/openbsd-compat/mktemp.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/stdio/mktemp.c */ - /* THIS FILE HAS BEEN MODIFIED FROM THE ORIGINAL OPENBSD SOURCE */ /* Changes: Removed mktemp */ @@ -32,6 +30,8 @@ * SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: lib/libc/stdio/mktemp.c */ + #include "includes.h" #if !defined(HAVE_MKDTEMP) || defined(HAVE_STRICT_MKSTEMP) diff --git a/openbsd-compat/readpassphrase.c b/openbsd-compat/readpassphrase.c index eb060bdbf..2c84f8021 100644 --- a/openbsd-compat/readpassphrase.c +++ b/openbsd-compat/readpassphrase.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/gen/readpassphrase.c */ - /* $OpenBSD: readpassphrase.c,v 1.16 2003/06/17 21:56:23 millert Exp $ */ /* @@ -22,6 +20,8 @@ * Materiel Command, USAF, under agreement number F39502-99-1-0512. */ +/* OPENBSD ORIGINAL: lib/libc/gen/readpassphrase.c */ + #if defined(LIBC_SCCS) && !defined(lint) static const char rcsid[] = "$OpenBSD: readpassphrase.c,v 1.16 2003/06/17 21:56:23 millert Exp $"; #endif /* LIBC_SCCS and not lint */ diff --git a/openbsd-compat/readpassphrase.h b/openbsd-compat/readpassphrase.h index 178edf346..faab47182 100644 --- a/openbsd-compat/readpassphrase.h +++ b/openbsd-compat/readpassphrase.h @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: include/readpassphrase.h */ - /* $OpenBSD: readpassphrase.h,v 1.3 2002/06/28 12:32:22 millert Exp $ */ /* @@ -29,6 +27,8 @@ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: include/readpassphrase.h */ + #ifndef _READPASSPHRASE_H_ #define _READPASSPHRASE_H_ diff --git a/openbsd-compat/realpath.c b/openbsd-compat/realpath.c index 8430bec24..8c889db3e 100644 --- a/openbsd-compat/realpath.c +++ b/openbsd-compat/realpath.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/stdlib/realpath.c */ - /* * Copyright (c) 2003 Constantin S. Svintsoff * @@ -28,6 +26,8 @@ * SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: lib/libc/stdlib/realpath.c */ + #include "includes.h" #if !defined(HAVE_REALPATH) || defined(BROKEN_REALPATH) diff --git a/openbsd-compat/rresvport.c b/openbsd-compat/rresvport.c index 75167065c..aa72f4ba2 100644 --- a/openbsd-compat/rresvport.c +++ b/openbsd-compat/rresvport.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/net/rresvport.c */ - /* * Copyright (c) 1995, 1996, 1998 Theo de Raadt. All rights reserved. * Copyright (c) 1983, 1993, 1994 @@ -30,6 +28,8 @@ * SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: lib/libc/net/rresvport.c */ + #include "includes.h" #ifndef HAVE_RRESVPORT_AF diff --git a/openbsd-compat/setenv.c b/openbsd-compat/setenv.c index 93a681152..b52a99c2c 100644 --- a/openbsd-compat/setenv.c +++ b/openbsd-compat/setenv.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/stdlib/setenv.c */ - /* $OpenBSD: setenv.c,v 1.9 2005/08/08 08:05:37 espie Exp $ */ /* * Copyright (c) 1987 Regents of the University of California. @@ -30,6 +28,8 @@ * SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: lib/libc/stdlib/setenv.c */ + #include "includes.h" #if !defined(HAVE_SETENV) || !defined(HAVE_UNSETENV) diff --git a/openbsd-compat/sigact.c b/openbsd-compat/sigact.c index 2772ac574..d1431a0d9 100644 --- a/openbsd-compat/sigact.c +++ b/openbsd-compat/sigact.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libcurses/base/sigaction.c */ - /* $OpenBSD: sigaction.c,v 1.3 1999/06/27 08:14:21 millert Exp $ */ /**************************************************************************** @@ -35,6 +33,8 @@ * and: Eric S. Raymond * ****************************************************************************/ +/* OPENBSD ORIGINAL: lib/libcurses/base/sigaction.c */ + #include "includes.h" #include #include "sigact.h" diff --git a/openbsd-compat/strlcat.c b/openbsd-compat/strlcat.c index 8252f31af..bcc1b61ad 100644 --- a/openbsd-compat/strlcat.c +++ b/openbsd-compat/strlcat.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/string/strlcat.c */ - /* $OpenBSD: strlcat.c,v 1.13 2005/08/08 08:05:37 espie Exp $ */ /* @@ -18,6 +16,8 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/* OPENBSD ORIGINAL: lib/libc/string/strlcat.c */ + #include "includes.h" #ifndef HAVE_STRLCAT diff --git a/openbsd-compat/strlcpy.c b/openbsd-compat/strlcpy.c index ccfa12a0a..736421202 100644 --- a/openbsd-compat/strlcpy.c +++ b/openbsd-compat/strlcpy.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/string/strlcpy.c */ - /* $OpenBSD: strlcpy.c,v 1.8 2003/06/17 21:56:24 millert Exp $ */ /* @@ -18,6 +16,8 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/* OPENBSD ORIGINAL: lib/libc/string/strlcpy.c */ + #include "includes.h" #ifndef HAVE_STRLCPY diff --git a/openbsd-compat/strmode.c b/openbsd-compat/strmode.c index ea8d515e3..0dbb23733 100644 --- a/openbsd-compat/strmode.c +++ b/openbsd-compat/strmode.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/string/strmode.c */ - /*- * Copyright (c) 1990 The Regents of the University of California. * All rights reserved. @@ -29,6 +27,8 @@ * SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: lib/libc/string/strmode.c */ + #include "includes.h" #ifndef HAVE_STRMODE diff --git a/openbsd-compat/strsep.c b/openbsd-compat/strsep.c index 330d84ce1..9e81980c7 100644 --- a/openbsd-compat/strsep.c +++ b/openbsd-compat/strsep.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/string/strsep.c */ - /* $OpenBSD: strsep.c,v 1.5 2003/06/11 21:08:16 deraadt Exp $ */ /*- @@ -31,6 +29,8 @@ * SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: lib/libc/string/strsep.c */ + #include "includes.h" #if !defined(HAVE_STRSEP) diff --git a/openbsd-compat/strtoll.c b/openbsd-compat/strtoll.c index 60c276f8a..653f572fe 100644 --- a/openbsd-compat/strtoll.c +++ b/openbsd-compat/strtoll.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/stdlib/strtoll.c */ - /*- * Copyright (c) 1992 The Regents of the University of California. * All rights reserved. @@ -29,6 +27,8 @@ * SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: lib/libc/stdlib/strtoll.c */ + #include "includes.h" #ifndef HAVE_STRTOLL diff --git a/openbsd-compat/strtonum.c b/openbsd-compat/strtonum.c index b681ed83b..8ad0d0058 100644 --- a/openbsd-compat/strtonum.c +++ b/openbsd-compat/strtonum.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/stdlib/strtonum.c */ - /* $OpenBSD: strtonum.c,v 1.6 2004/08/03 19:38:01 millert Exp $ */ /* @@ -19,6 +17,8 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/* OPENBSD ORIGINAL: lib/libc/stdlib/strtonum.c */ + #include "includes.h" #ifndef HAVE_STRTONUM #include diff --git a/openbsd-compat/strtoul.c b/openbsd-compat/strtoul.c index 24d0e253d..7c093c48f 100644 --- a/openbsd-compat/strtoul.c +++ b/openbsd-compat/strtoul.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/stdlib/strtoul.c */ - /* * Copyright (c) 1990 Regents of the University of California. * All rights reserved. @@ -29,6 +27,8 @@ * SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: lib/libc/stdlib/strtoul.c */ + #include "includes.h" #ifndef HAVE_STRTOUL diff --git a/openbsd-compat/sys-queue.h b/openbsd-compat/sys-queue.h index c49a94650..402343324 100644 --- a/openbsd-compat/sys-queue.h +++ b/openbsd-compat/sys-queue.h @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: sys/sys/queue.h */ - /* $OpenBSD: queue.h,v 1.25 2004/04/08 16:08:21 henning Exp $ */ /* $NetBSD: queue.h,v 1.11 1996/05/16 05:17:14 mycroft Exp $ */ @@ -34,6 +32,8 @@ * @(#)queue.h 8.5 (Berkeley) 8/20/94 */ +/* OPENBSD ORIGINAL: sys/sys/queue.h */ + #ifndef _FAKE_QUEUE_H_ #define _FAKE_QUEUE_H_ diff --git a/openbsd-compat/sys-tree.h b/openbsd-compat/sys-tree.h index 73cfbe72a..c80b90b21 100644 --- a/openbsd-compat/sys-tree.h +++ b/openbsd-compat/sys-tree.h @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: sys/sys/tree.h */ - /* $OpenBSD: tree.h,v 1.7 2002/10/17 21:51:54 art Exp $ */ /* * Copyright 2002 Niels Provos @@ -26,6 +24,8 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: sys/sys/tree.h */ + #ifndef _SYS_TREE_H_ #define _SYS_TREE_H_ diff --git a/openbsd-compat/vis.c b/openbsd-compat/vis.c index 52d19ac55..3a087b341 100644 --- a/openbsd-compat/vis.c +++ b/openbsd-compat/vis.c @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: lib/libc/gen/vis.c */ - /* $OpenBSD: vis.c,v 1.19 2005/09/01 17:15:49 millert Exp $ */ /*- * Copyright (c) 1989, 1993 @@ -30,6 +28,8 @@ * SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: lib/libc/gen/vis.c */ + #include "includes.h" #if !defined(HAVE_STRNVIS) diff --git a/openbsd-compat/vis.h b/openbsd-compat/vis.h index 0588f68da..3898a9e70 100644 --- a/openbsd-compat/vis.h +++ b/openbsd-compat/vis.h @@ -1,5 +1,3 @@ -/* OPENBSD ORIGINAL: include/vis.h */ - /* $OpenBSD: vis.h,v 1.11 2005/08/09 19:38:31 millert Exp $ */ /* $NetBSD: vis.h,v 1.4 1994/10/26 00:56:41 cgd Exp $ */ @@ -34,6 +32,8 @@ * @(#)vis.h 5.9 (Berkeley) 4/3/91 */ +/* OPENBSD ORIGINAL: include/vis.h */ + #include "includes.h" #if !defined(HAVE_STRNVIS) -- cgit v1.2.3 From 52245663035ec7322ec2e1288d9692be7b2e4181 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 16:26:17 +1100 Subject: - (dtucker) [openbsd-compat/strlcpy.c] Update from OpenBSD 1.8 -> 1.10. --- ChangeLog | 3 ++- openbsd-compat/strlcpy.c | 12 ++++-------- 2 files changed, 6 insertions(+), 9 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 367127ebc..665044558 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,6 +17,7 @@ - (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. + - (dtucker) [openbsd-compat/strlcpy.c] Update from OpenBSD 1.8 -> 1.10. 20051105 - (djm) OpenBSD CVS Sync @@ -3259,4 +3260,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.3962 2005/11/10 05:18:56 dtucker Exp $ +$Id: ChangeLog,v 1.3963 2005/11/10 05:26:17 dtucker Exp $ diff --git a/openbsd-compat/strlcpy.c b/openbsd-compat/strlcpy.c index 736421202..679a5b291 100644 --- a/openbsd-compat/strlcpy.c +++ b/openbsd-compat/strlcpy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: strlcpy.c,v 1.8 2003/06/17 21:56:24 millert Exp $ */ +/* $OpenBSD: strlcpy.c,v 1.10 2005/08/08 08:05:37 espie Exp $ */ /* * Copyright (c) 1998 Todd C. Miller @@ -21,10 +21,6 @@ #include "includes.h" #ifndef HAVE_STRLCPY -#if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: strlcpy.c,v 1.8 2003/06/17 21:56:24 millert Exp $"; -#endif /* LIBC_SCCS and not lint */ - #include #include @@ -36,9 +32,9 @@ static char *rcsid = "$OpenBSD: strlcpy.c,v 1.8 2003/06/17 21:56:24 millert Exp size_t strlcpy(char *dst, const char *src, size_t siz) { - register char *d = dst; - register const char *s = src; - register size_t n = siz; + char *d = dst; + const char *s = src; + size_t n = siz; /* Copy as many bytes as will fit */ if (n != 0 && --n != 0) { -- cgit v1.2.3 From 925d1de3fb44ef62f72589966ea9a2823b567762 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 16:31:55 +1100 Subject: - (dtucker) [openbsd-compat/sigact.h] Add "OPENBSD ORIGINAL" marker. --- ChangeLog | 3 ++- openbsd-compat/sigact.h | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 665044558..59c06c0fb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,6 +18,7 @@ after the copyright notices. Having them at the top next to the CVSIDs guarantees a conflict for each and every sync. - (dtucker) [openbsd-compat/strlcpy.c] Update from OpenBSD 1.8 -> 1.10. + - (dtucker) [openbsd-compat/sigact.h] Add "OPENBSD ORIGINAL" marker. 20051105 - (djm) OpenBSD CVS Sync @@ -3260,4 +3261,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.3963 2005/11/10 05:26:17 dtucker Exp $ +$Id: ChangeLog,v 1.3964 2005/11/10 05:31:55 dtucker Exp $ diff --git a/openbsd-compat/sigact.h b/openbsd-compat/sigact.h index b37c1f84a..7821e09e8 100644 --- a/openbsd-compat/sigact.h +++ b/openbsd-compat/sigact.h @@ -40,6 +40,8 @@ * and usually no sigaction() nor */ +/* OPENBSD ORIGINAL: lib/libcurses/SigAction.h */ + #ifndef _SIGACTION_H #define _SIGACTION_H -- cgit v1.2.3 From 09471d8a1f7e46116ba44f0f08c756196dbf6c70 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 16:38:54 +1100 Subject: - (dtucker) [openbsd-compat/strmode.c] Update from OpenBSD 1.5 -> 1.7. Removal of rcsid, "whiteout" inode type. --- ChangeLog | 4 +++- openbsd-compat/strmode.c | 10 +--------- 2 files changed, 4 insertions(+), 10 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 59c06c0fb..5a1be997f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -19,6 +19,8 @@ guarantees a conflict for each and every sync. - (dtucker) [openbsd-compat/strlcpy.c] Update from OpenBSD 1.8 -> 1.10. - (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. 20051105 - (djm) OpenBSD CVS Sync @@ -3261,4 +3263,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.3964 2005/11/10 05:31:55 dtucker Exp $ +$Id: ChangeLog,v 1.3965 2005/11/10 05:38:54 dtucker Exp $ diff --git a/openbsd-compat/strmode.c b/openbsd-compat/strmode.c index 0dbb23733..4a8161422 100644 --- a/openbsd-compat/strmode.c +++ b/openbsd-compat/strmode.c @@ -1,3 +1,4 @@ +/* $OpenBSD: strmode.c,v 1.7 2005/08/08 08:05:37 espie Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. * All rights reserved. @@ -32,10 +33,6 @@ #include "includes.h" #ifndef HAVE_STRMODE -#if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: strmode.c,v 1.5 2003/06/11 21:08:16 deraadt Exp $"; -#endif /* LIBC_SCCS and not lint */ - #include #include #include @@ -71,11 +68,6 @@ strmode(int mode, char *p) case S_IFIFO: /* fifo */ *p++ = 'p'; break; -#endif -#ifdef S_IFWHT - case S_IFWHT: /* whiteout */ - *p++ = 'w'; - break; #endif default: /* unknown */ *p++ = '?'; -- 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') 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 From f976e6f883879a3749d79dc64d3f8513095ee9e0 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 16:46:26 +1100 Subject: - (dtucker) [openbsd-compat/strtoll.c] Update from OpenBSD 1.4 -> 1.5. Removal of rcsid. --- ChangeLog | 4 +++- openbsd-compat/strtoll.c | 4 ---- 2 files changed, 3 insertions(+), 5 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index a484b95ba..570773f7e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -23,6 +23,8 @@ 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. + - (dtucker) [openbsd-compat/strtoll.c] Update from OpenBSD 1.4 -> 1.5. + Removal of rcsid. 20051105 - (djm) OpenBSD CVS Sync @@ -3265,4 +3267,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.3966 2005/11/10 05:42:51 dtucker Exp $ +$Id: ChangeLog,v 1.3967 2005/11/10 05:46:26 dtucker Exp $ diff --git a/openbsd-compat/strtoll.c b/openbsd-compat/strtoll.c index 653f572fe..76e87ccbe 100644 --- a/openbsd-compat/strtoll.c +++ b/openbsd-compat/strtoll.c @@ -32,10 +32,6 @@ #include "includes.h" #ifndef HAVE_STRTOLL -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$OpenBSD: strtoll.c,v 1.4 2005/03/30 18:51:49 pat Exp $"; -#endif /* LIBC_SCCS and not lint */ - #include #include -- cgit v1.2.3 From f5ebfe9f68ab32adaa1d5ac3418eba838fed5f92 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 16:48:10 +1100 Subject: - (dtucker) [openbsd-compat/strtoul.c] Update from OpenBSD 1.5 -> 1.7. --- ChangeLog | 4 ++-- openbsd-compat/strtoul.c | 18 ++++++------------ 2 files changed, 8 insertions(+), 14 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 570773f7e..94515aaf5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24,7 +24,7 @@ - (dtucker) [openbsd-compat/basename.c] Update from OpenBSD 1.11 -> 1.14. Removal of rcsid, will no longer strlcpy parts of the string. - (dtucker) [openbsd-compat/strtoll.c] Update from OpenBSD 1.4 -> 1.5. - Removal of rcsid. + - (dtucker) [openbsd-compat/strtoul.c] Update from OpenBSD 1.5 -> 1.7. 20051105 - (djm) OpenBSD CVS Sync @@ -3267,4 +3267,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.3967 2005/11/10 05:46:26 dtucker Exp $ +$Id: ChangeLog,v 1.3968 2005/11/10 05:48:10 dtucker Exp $ diff --git a/openbsd-compat/strtoul.c b/openbsd-compat/strtoul.c index 7c093c48f..8219c8391 100644 --- a/openbsd-compat/strtoul.c +++ b/openbsd-compat/strtoul.c @@ -1,3 +1,4 @@ +/* $OpenBSD: strtoul.c,v 1.7 2005/08/08 08:05:37 espie Exp $ */ /* * Copyright (c) 1990 Regents of the University of California. * All rights reserved. @@ -32,10 +33,6 @@ #include "includes.h" #ifndef HAVE_STRTOUL -#if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: strtoul.c,v 1.5 2003/06/02 20:18:38 millert Exp $"; -#endif /* LIBC_SCCS and not lint */ - #include #include #include @@ -48,15 +45,12 @@ static char *rcsid = "$OpenBSD: strtoul.c,v 1.5 2003/06/02 20:18:38 millert Exp * alphabets and digits are each contiguous. */ unsigned long -strtoul(nptr, endptr, base) - const char *nptr; - char **endptr; - register int base; +strtoul(const char *nptr, char **endptr, int base) { - register const char *s; - register unsigned long acc, cutoff; - register int c; - register int neg, any, cutlim; + const char *s; + unsigned long acc, cutoff; + int c; + int neg, any, cutlim; /* * See strtol for comments as to the logic used. -- cgit v1.2.3 From dbb631cebe0108bae40ff73fd67f9873abed5cd5 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 16:56:28 +1100 Subject: - (dtucker) [openbsd-compat/readpassphrase.c] Update from OpenBSD 1.16 -> 1.18. --- ChangeLog | 3 ++- openbsd-compat/readpassphrase.c | 6 +----- 2 files changed, 3 insertions(+), 6 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 94515aaf5..cd364fd3f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -25,6 +25,7 @@ Removal of rcsid, will no longer strlcpy parts of the string. - (dtucker) [openbsd-compat/strtoll.c] Update from OpenBSD 1.4 -> 1.5. - (dtucker) [openbsd-compat/strtoul.c] Update from OpenBSD 1.5 -> 1.7. + - (dtucker) [openbsd-compat/readpassphrase.c] Update from OpenBSD 1.16 -> 1.18. 20051105 - (djm) OpenBSD CVS Sync @@ -3267,4 +3268,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.3968 2005/11/10 05:48:10 dtucker Exp $ +$Id: ChangeLog,v 1.3969 2005/11/10 05:56:28 dtucker Exp $ diff --git a/openbsd-compat/readpassphrase.c b/openbsd-compat/readpassphrase.c index 2c84f8021..919c0174a 100644 --- a/openbsd-compat/readpassphrase.c +++ b/openbsd-compat/readpassphrase.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readpassphrase.c,v 1.16 2003/06/17 21:56:23 millert Exp $ */ +/* $OpenBSD: readpassphrase.c,v 1.18 2005/08/08 08:05:34 espie Exp $ */ /* * Copyright (c) 2000-2002 Todd C. Miller @@ -22,10 +22,6 @@ /* OPENBSD ORIGINAL: lib/libc/gen/readpassphrase.c */ -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$OpenBSD: readpassphrase.c,v 1.16 2003/06/17 21:56:23 millert Exp $"; -#endif /* LIBC_SCCS and not lint */ - #include "includes.h" #ifndef HAVE_READPASSPHRASE -- cgit v1.2.3 From d76b4c74f808d356ac620fa18ee9e3c3ab75dd0c Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 16:58:47 +1100 Subject: - (dtucker) [openbsd-compat/readpassphrase.h] Update from OpenBSD 1.3 -> 1.5. --- ChangeLog | 3 ++- openbsd-compat/readpassphrase.h | 39 ++++++++++++++++----------------------- 2 files changed, 18 insertions(+), 24 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index cd364fd3f..3f1d497d7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -26,6 +26,7 @@ - (dtucker) [openbsd-compat/strtoll.c] Update from OpenBSD 1.4 -> 1.5. - (dtucker) [openbsd-compat/strtoul.c] Update from OpenBSD 1.5 -> 1.7. - (dtucker) [openbsd-compat/readpassphrase.c] Update from OpenBSD 1.16 -> 1.18. + - (dtucker) [openbsd-compat/readpassphrase.h] Update from OpenBSD 1.3 -> 1.5. 20051105 - (djm) OpenBSD CVS Sync @@ -3268,4 +3269,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.3969 2005/11/10 05:56:28 dtucker Exp $ +$Id: ChangeLog,v 1.3970 2005/11/10 05:58:47 dtucker Exp $ diff --git a/openbsd-compat/readpassphrase.h b/openbsd-compat/readpassphrase.h index faab47182..5fd7c5d77 100644 --- a/openbsd-compat/readpassphrase.h +++ b/openbsd-compat/readpassphrase.h @@ -1,30 +1,23 @@ -/* $OpenBSD: readpassphrase.h,v 1.3 2002/06/28 12:32:22 millert Exp $ */ +/* $OpenBSD: readpassphrase.h,v 1.5 2003/06/17 21:56:23 millert Exp $ */ /* - * Copyright (c) 2000 Todd C. Miller - * All rights reserved. + * Copyright (c) 2000, 2002 Todd C. Miller * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Sponsored in part by the Defense Advanced Research Projects + * Agency (DARPA) and Air Force Research Laboratory, Air Force + * Materiel Command, USAF, under agreement number F39502-99-1-0512. */ /* OPENBSD ORIGINAL: include/readpassphrase.h */ -- cgit v1.2.3 From 6524d4f161d0505af2926c34e19032e1fcd102fd Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 17:02:21 +1100 Subject: - (dtucker) [openbsd-compat/glob.c] Update from OpenBSD 1.22 -> 1.25. --- ChangeLog | 3 +- openbsd-compat/glob.c | 118 ++++++++++++++------------------------------------ 2 files changed, 35 insertions(+), 86 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 3f1d497d7..c4db5a49c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -27,6 +27,7 @@ - (dtucker) [openbsd-compat/strtoul.c] Update from OpenBSD 1.5 -> 1.7. - (dtucker) [openbsd-compat/readpassphrase.c] Update from OpenBSD 1.16 -> 1.18. - (dtucker) [openbsd-compat/readpassphrase.h] Update from OpenBSD 1.3 -> 1.5. + - (dtucker) [openbsd-compat/glob.c] Update from OpenBSD 1.22 -> 1.25. 20051105 - (djm) OpenBSD CVS Sync @@ -3269,4 +3270,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.3970 2005/11/10 05:58:47 dtucker Exp $ +$Id: ChangeLog,v 1.3971 2005/11/10 06:02:21 dtucker Exp $ diff --git a/openbsd-compat/glob.c b/openbsd-compat/glob.c index e00db7079..f6a04ea3f 100644 --- a/openbsd-compat/glob.c +++ b/openbsd-compat/glob.c @@ -1,3 +1,4 @@ +/* $OpenBSD: glob.c,v 1.25 2005/08/08 08:05:34 espie Exp $ */ /* * Copyright (c) 1989, 1993 * The Regents of the University of California. All rights reserved. @@ -50,14 +51,6 @@ get_arg_max(void) #if !defined(HAVE_GLOB) || !defined(GLOB_HAS_ALTDIRFUNC) || \ !defined(GLOB_HAS_GL_MATCHC) -#if defined(LIBC_SCCS) && !defined(lint) -#if 0 -static char sccsid[] = "@(#)glob.c 8.3 (Berkeley) 10/13/93"; -#else -static char rcsid[] = "$OpenBSD: glob.c,v 1.22 2003/06/25 21:16:47 deraadt Exp $"; -#endif -#endif /* LIBC_SCCS and not lint */ - /* * glob(3) -- a superset of the one defined in POSIX 1003.2. * @@ -158,10 +151,8 @@ static void qprintf(const char *, Char *); #endif int -glob(pattern, flags, errfunc, pglob) - const char *pattern; - int flags, (*errfunc)(const char *, int); - glob_t *pglob; +glob(const char *pattern, int flags, int (*errfunc)(const char *, int), + glob_t *pglob) { const u_char *patnext; int c; @@ -209,9 +200,7 @@ glob(pattern, flags, errfunc, pglob) * characters */ static int -globexp1(pattern, pglob) - const Char *pattern; - glob_t *pglob; +globexp1(const Char *pattern, glob_t *pglob) { const Char* ptr = pattern; int rv; @@ -234,10 +223,7 @@ globexp1(pattern, pglob) * If it fails then it tries to glob the rest of the pattern and returns. */ static int -globexp2(ptr, pattern, pglob, rv) - const Char *ptr, *pattern; - glob_t *pglob; - int *rv; +globexp2(const Char *ptr, const Char *pattern, glob_t *pglob, int *rv) { int i; Char *lm, *ls; @@ -342,11 +328,7 @@ globexp2(ptr, pattern, pglob, rv) * expand tilde from the passwd file. */ static const Char * -globtilde(pattern, patbuf, patbuf_len, pglob) - const Char *pattern; - Char *patbuf; - size_t patbuf_len; - glob_t *pglob; +globtilde(const Char *pattern, Char *patbuf, size_t patbuf_len, glob_t *pglob) { struct passwd *pwd; char *h; @@ -414,9 +396,7 @@ globtilde(pattern, patbuf, patbuf_len, pglob) * to find no matches. */ static int -glob0(pattern, pglob) - const Char *pattern; - glob_t *pglob; +glob0(const Char *pattern, glob_t *pglob) { const Char *qpatnext; int c, err, oldpathc; @@ -503,17 +483,13 @@ glob0(pattern, pglob) } static int -compare(p, q) - const void *p, *q; +compare(const void *p, const void *q) { return(strcmp(*(char **)p, *(char **)q)); } static int -glob1(pattern, pattern_last, pglob, limitp) - Char *pattern, *pattern_last; - glob_t *pglob; - size_t *limitp; +glob1(Char *pattern, Char *pattern_last, glob_t *pglob, size_t *limitp) { Char pathbuf[MAXPATHLEN]; @@ -531,12 +507,8 @@ glob1(pattern, pattern_last, pglob, limitp) * meta characters. */ static int -glob2(pathbuf, pathbuf_last, pathend, pathend_last, pattern, - pattern_last, pglob, limitp) - Char *pathbuf, *pathbuf_last, *pathend, *pathend_last; - Char *pattern, *pattern_last; - glob_t *pglob; - size_t *limitp; +glob2(Char *pathbuf, Char *pathbuf_last, Char *pathend, Char *pathend_last, + Char *pattern, Char *pattern_last, glob_t *pglob, size_t *limitp) { struct stat sb; Char *p, *q; @@ -595,14 +567,11 @@ glob2(pathbuf, pathbuf_last, pathend, pathend_last, pattern, } static int -glob3(pathbuf, pathbuf_last, pathend, pathend_last, pattern, pattern_last, - restpattern, restpattern_last, pglob, limitp) - Char *pathbuf, *pathbuf_last, *pathend, *pathend_last; - Char *pattern, *pattern_last, *restpattern, *restpattern_last; - glob_t *pglob; - size_t *limitp; +glob3(Char *pathbuf, Char *pathbuf_last, Char *pathend, Char *pathend_last, + Char *pattern, Char *pattern_last, Char *restpattern, + Char *restpattern_last, glob_t *pglob, size_t *limitp) { - register struct dirent *dp; + struct dirent *dp; DIR *dirp; int err; char buf[MAXPATHLEN]; @@ -640,8 +609,8 @@ glob3(pathbuf, pathbuf_last, pathend, pathend_last, pattern, pattern_last, else readdirfunc = (struct dirent *(*)(void *))readdir; while ((dp = (*readdirfunc)(dirp))) { - register u_char *sc; - register Char *dc; + u_char *sc; + Char *dc; /* Initial DOT must be matched literally. */ if (dp->d_name[0] == DOT && *pattern != DOT) @@ -689,13 +658,10 @@ glob3(pathbuf, pathbuf_last, pathend, pathend_last, pattern, pattern_last, * gl_pathv points to (gl_offs + gl_pathc + 1) items. */ static int -globextend(path, pglob, limitp) - const Char *path; - glob_t *pglob; - size_t *limitp; +globextend(const Char *path, glob_t *pglob, size_t *limitp) { - register char **pathv; - register int i; + char **pathv; + int i; u_int newsize, len; char *copy; const Char *p; @@ -747,8 +713,7 @@ globextend(path, pglob, limitp) * pattern causes a recursion level. */ static int -match(name, pat, patend) - register Char *name, *pat, *patend; +match(Char *name, Char *pat, Char *patend) { int ok, negate_range; Char c, k; @@ -759,11 +724,10 @@ match(name, pat, patend) case M_ALL: if (pat == patend) return(1); - do + do { if (match(name, pat, patend)) return(1); - while (*name++ != EOS) - ; + } while (*name++ != EOS); return(0); case M_ONE: if (*name++ == EOS) @@ -796,11 +760,10 @@ match(name, pat, patend) /* Free allocated data belonging to a glob_t structure. */ void -globfree(pglob) - glob_t *pglob; +globfree(glob_t *pglob) { - register int i; - register char **pp; + int i; + char **pp; if (pglob->gl_pathv != NULL) { pp = pglob->gl_pathv + pglob->gl_offs; @@ -813,9 +776,7 @@ globfree(pglob) } static DIR * -g_opendir(str, pglob) - register Char *str; - glob_t *pglob; +g_opendir(Char *str, glob_t *pglob) { char buf[MAXPATHLEN]; @@ -833,10 +794,7 @@ g_opendir(str, pglob) } static int -g_lstat(fn, sb, pglob) - register Char *fn; - struct stat *sb; - glob_t *pglob; +g_lstat(Char *fn, struct stat *sb, glob_t *pglob) { char buf[MAXPATHLEN]; @@ -848,10 +806,7 @@ g_lstat(fn, sb, pglob) } static int -g_stat(fn, sb, pglob) - register Char *fn; - struct stat *sb; - glob_t *pglob; +g_stat(Char *fn, struct stat *sb, glob_t *pglob) { char buf[MAXPATHLEN]; @@ -863,9 +818,7 @@ g_stat(fn, sb, pglob) } static Char * -g_strchr(str, ch) - Char *str; - int ch; +g_strchr(Char *str, int ch) { do { if (*str == ch) @@ -875,10 +828,7 @@ g_strchr(str, ch) } static int -g_Ctoc(str, buf, len) - register const Char *str; - char *buf; - u_int len; +g_Ctoc(const Char *str, char *buf, u_int len) { while (len--) { @@ -890,11 +840,9 @@ g_Ctoc(str, buf, len) #ifdef DEBUG static void -qprintf(str, s) - const char *str; - register Char *s; +qprintf(const char *str, Char *s) { - register Char *p; + Char *p; (void)printf("%s:\n", str); for (p = s; *p; p++) -- cgit v1.2.3 From 50a221ba7ac156ce8b961d4f860886f4a5499cdf Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 17:03:22 +1100 Subject: - (dtucker) [openbsd-compat/glob.h] Update from OpenBSD 1.8 -> 1.9. --- ChangeLog | 3 ++- openbsd-compat/glob.h | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index c4db5a49c..4e2f98d15 100644 --- a/ChangeLog +++ b/ChangeLog @@ -28,6 +28,7 @@ - (dtucker) [openbsd-compat/readpassphrase.c] Update from OpenBSD 1.16 -> 1.18. - (dtucker) [openbsd-compat/readpassphrase.h] Update from OpenBSD 1.3 -> 1.5. - (dtucker) [openbsd-compat/glob.c] Update from OpenBSD 1.22 -> 1.25. + - (dtucker) [openbsd-compat/glob.h] Update from OpenBSD 1.8 -> 1.9. 20051105 - (djm) OpenBSD CVS Sync @@ -3270,4 +3271,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.3971 2005/11/10 06:02:21 dtucker Exp $ +$Id: ChangeLog,v 1.3972 2005/11/10 06:03:22 dtucker Exp $ diff --git a/openbsd-compat/glob.h b/openbsd-compat/glob.h index 5d80073d3..4fdbfc1ea 100644 --- a/openbsd-compat/glob.h +++ b/openbsd-compat/glob.h @@ -1,4 +1,4 @@ -/* $OpenBSD: glob.h,v 1.8 2003/06/02 19:34:12 millert Exp $ */ +/* $OpenBSD: glob.h,v 1.9 2004/10/07 16:56:11 millert Exp $ */ /* $NetBSD: glob.h,v 1.5 1994/10/26 00:55:56 cgd Exp $ */ /* @@ -72,6 +72,7 @@ typedef struct { #define GLOB_MARK 0x0008 /* Append / to matching directories. */ #define GLOB_NOCHECK 0x0010 /* Return pattern itself if nothing matches. */ #define GLOB_NOSORT 0x0020 /* Don't sort. */ +#define GLOB_NOESCAPE 0x1000 /* Disable backslash escaping. */ #define GLOB_ALTDIRFUNC 0x0040 /* Use alternately specified directory funcs. */ #define GLOB_BRACE 0x0080 /* Expand braces ala csh. */ @@ -79,7 +80,6 @@ typedef struct { #define GLOB_NOMAGIC 0x0200 /* GLOB_NOCHECK without magic chars (csh). */ #define GLOB_QUOTE 0x0400 /* Quote special chars with \. */ #define GLOB_TILDE 0x0800 /* Expand tilde names from the passwd file. */ -#define GLOB_NOESCAPE 0x1000 /* Disable backslash escaping. */ #define GLOB_LIMIT 0x2000 /* Limit pattern match output to ARG_MAX */ /* Error values returned by glob(3) */ -- cgit v1.2.3 From 31ba53e333458abda2337f5d3ded0205485bd355 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 17:11:29 +1100 Subject: - (dtucker) [openbsd-compat/getcwd.c] Update from OpenBSD 1.9 -> 1.14. --- ChangeLog | 3 ++- openbsd-compat/getcwd.c | 44 ++++++++++++++++++++++---------------------- 2 files changed, 24 insertions(+), 23 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 4e2f98d15..22a17bca8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -29,6 +29,7 @@ - (dtucker) [openbsd-compat/readpassphrase.h] Update from OpenBSD 1.3 -> 1.5. - (dtucker) [openbsd-compat/glob.c] Update from OpenBSD 1.22 -> 1.25. - (dtucker) [openbsd-compat/glob.h] Update from OpenBSD 1.8 -> 1.9. + - (dtucker) [openbsd-compat/getcwd.c] Update from OpenBSD 1.9 -> 1.14. 20051105 - (djm) OpenBSD CVS Sync @@ -3271,4 +3272,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.3972 2005/11/10 06:03:22 dtucker Exp $ +$Id: ChangeLog,v 1.3973 2005/11/10 06:11:29 dtucker Exp $ diff --git a/openbsd-compat/getcwd.c b/openbsd-compat/getcwd.c index d58c03e0e..9354f7ae4 100644 --- a/openbsd-compat/getcwd.c +++ b/openbsd-compat/getcwd.c @@ -1,3 +1,4 @@ +/* $OpenBSD: getcwd.c,v 1.14 2005/08/08 08:05:34 espie Exp $ */ /* * Copyright (c) 1989, 1991, 1993 * The Regents of the University of California. All rights reserved. @@ -33,10 +34,6 @@ #if !defined(HAVE_GETCWD) -#if defined(LIBC_SCCS) && !defined(lint) -static char rcsid[] = "$OpenBSD: getcwd.c,v 1.9 2003/06/11 21:03:10 deraadt Exp $"; -#endif /* LIBC_SCCS and not lint */ - #include #include #include @@ -54,12 +51,12 @@ static char rcsid[] = "$OpenBSD: getcwd.c,v 1.9 2003/06/11 21:03:10 deraadt Exp char * getcwd(char *pt, size_t size) { - register struct dirent *dp; - register DIR *dir = NULL; - register dev_t dev; - register ino_t ino; - register int first; - register char *bpt, *bup; + struct dirent *dp; + DIR *dir = NULL; + dev_t dev; + ino_t ino; + int first; + char *bpt, *bup; struct stat s; dev_t root_dev; ino_t root_ino; @@ -80,7 +77,7 @@ getcwd(char *pt, size_t size) } ept = pt + size; } else { - if ((pt = malloc(ptsize = 1024 - 4)) == NULL) + if ((pt = malloc(ptsize = MAXPATHLEN)) == NULL) return (NULL); ept = pt + ptsize; } @@ -88,13 +85,13 @@ getcwd(char *pt, size_t size) *bpt = '\0'; /* - * Allocate bytes (1024 - malloc space) for the string of "../"'s. + * Allocate bytes for the string of "../"'s. * Should always be enough (it's 340 levels). If it's not, allocate * as necessary. Special * case the first stat, it's ".", not "..". */ - if ((up = malloc(upsize = 1024 - 4)) == NULL) + if ((up = malloc(upsize = MAXPATHLEN)) == NULL) goto err; - eup = up + MAXPATHLEN; + eup = up + upsize; bup = up; up[0] = '.'; up[1] = '\0'; @@ -139,8 +136,8 @@ getcwd(char *pt, size_t size) if ((nup = realloc(up, upsize *= 2)) == NULL) goto err; + bup = nup + (bup - up); up = nup; - bup = up; eup = up + upsize; } *bup++ = '.'; @@ -175,7 +172,7 @@ getcwd(char *pt, size_t size) goto notfound; if (ISDOT(dp)) continue; - memmove(bup, dp->d_name, dp->d_namlen + 1); + memcpy(bup, dp->d_name, dp->d_namlen + 1); /* Save the first error for later. */ if (lstat(up, &s)) { @@ -193,19 +190,18 @@ getcwd(char *pt, size_t size) * leading slash. */ if (bpt - pt < dp->d_namlen + (first ? 1 : 2)) { - size_t len, off; + size_t len; char *npt; if (!ptsize) { errno = ERANGE; goto err; } - off = bpt - pt; len = ept - bpt; if ((npt = realloc(pt, ptsize *= 2)) == NULL) goto err; + bpt = npt + (bpt - pt); pt = npt; - bpt = pt + off; ept = pt + ptsize; memmove(ept - len, bpt, len); bpt = ept - len; @@ -213,7 +209,7 @@ getcwd(char *pt, size_t size) if (!first) *--bpt = '/'; bpt -= dp->d_namlen; - memmove(bpt, dp->d_name, dp->d_namlen); + memcpy(bpt, dp->d_name, dp->d_namlen); (void)closedir(dir); /* Truncate any file name. */ @@ -230,12 +226,16 @@ notfound: errno = save_errno ? save_errno : ENOENT; /* FALLTHROUGH */ err: + save_errno = errno; + if (ptsize) free(pt); - if (up) - free(up); + free(up); if (dir) (void)closedir(dir); + + errno = save_errno; + return (NULL); } -- cgit v1.2.3 From 0a149d19d3ca291c33f449c304d4b0c5601c127a Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 17:15:06 +1100 Subject: - (dtucker) [openbsd-compat/getcwd.c] Replace lstat with fstat to match up with OpenBSD code since we don't support platforms without fstat any more. --- ChangeLog | 4 +++- openbsd-compat/getcwd.c | 6 ++---- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 22a17bca8..a274ce3ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -30,6 +30,8 @@ - (dtucker) [openbsd-compat/glob.c] Update from OpenBSD 1.22 -> 1.25. - (dtucker) [openbsd-compat/glob.h] Update from OpenBSD 1.8 -> 1.9. - (dtucker) [openbsd-compat/getcwd.c] Update from OpenBSD 1.9 -> 1.14. + - (dtucker) [openbsd-compat/getcwd.c] Replace lstat with fstat to match up + with OpenBSD code since we don't support platforms without fstat any more. 20051105 - (djm) OpenBSD CVS Sync @@ -3272,4 +3274,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.3973 2005/11/10 06:11:29 dtucker Exp $ +$Id: ChangeLog,v 1.3974 2005/11/10 06:15:06 dtucker Exp $ diff --git a/openbsd-compat/getcwd.c b/openbsd-compat/getcwd.c index 9354f7ae4..711cb9cd5 100644 --- a/openbsd-compat/getcwd.c +++ b/openbsd-compat/getcwd.c @@ -144,10 +144,8 @@ getcwd(char *pt, size_t size) *bup++ = '.'; *bup = '\0'; - /* Open and stat parent directory. - * RACE?? - replaced fstat(dirfd(dir), &s) w/ lstat(up,&s) - */ - if (!(dir = opendir(up)) || lstat(up,&s)) + /* Open and stat parent directory. */ + if (!(dir = opendir(up)) || fstat(dirfd(dir), &s)) goto err; /* Add trailing slash for next directory. */ -- cgit v1.2.3 From c7e05d679a8fdbc7cfa2eefb54f9fcb84ff715ae Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 17:21:21 +1100 Subject: - (dtucker) [openbsd-compat/inet_aton.c] Update from OpenBSD 1.7 -> 1.9. --- ChangeLog | 3 ++- openbsd-compat/inet_aton.c | 24 +++++++----------------- 2 files changed, 9 insertions(+), 18 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index a274ce3ba..120f68f84 100644 --- a/ChangeLog +++ b/ChangeLog @@ -32,6 +32,7 @@ - (dtucker) [openbsd-compat/getcwd.c] Update from OpenBSD 1.9 -> 1.14. - (dtucker) [openbsd-compat/getcwd.c] Replace lstat with fstat to match up with OpenBSD code since we don't support platforms without fstat any more. + - (dtucker) [openbsd-compat/inet_aton.c] Update from OpenBSD 1.7 -> 1.9. 20051105 - (djm) OpenBSD CVS Sync @@ -3274,4 +3275,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.3974 2005/11/10 06:15:06 dtucker Exp $ +$Id: ChangeLog,v 1.3975 2005/11/10 06:21:21 dtucker Exp $ diff --git a/openbsd-compat/inet_aton.c b/openbsd-compat/inet_aton.c index 355bf6bc9..130597e14 100644 --- a/openbsd-compat/inet_aton.c +++ b/openbsd-compat/inet_aton.c @@ -1,4 +1,4 @@ -/* $OpenBSD: inet_addr.c,v 1.7 2003/06/02 20:18:35 millert Exp $ */ +/* $OpenBSD: inet_addr.c,v 1.9 2005/08/06 20:30:03 espie Exp $ */ /* * Copyright (c) 1983, 1990, 1993 @@ -55,15 +55,6 @@ #if !defined(HAVE_INET_ATON) -#if defined(LIBC_SCCS) && !defined(lint) -#if 0 -static char sccsid[] = "@(#)inet_addr.c 8.1 (Berkeley) 6/17/93"; -static char rcsid[] = "$From: inet_addr.c,v 8.5 1996/08/05 08:31:35 vixie Exp $"; -#else -static char rcsid[] = "$OpenBSD: inet_addr.c,v 1.7 2003/06/02 20:18:35 millert Exp $"; -#endif -#endif /* LIBC_SCCS and not lint */ - #include #include #include @@ -76,8 +67,7 @@ static char rcsid[] = "$OpenBSD: inet_addr.c,v 1.7 2003/06/02 20:18:35 millert E * The value returned is in network order. */ in_addr_t -inet_addr(cp) - register const char *cp; +inet_addr(const char *cp) { struct in_addr val; @@ -97,11 +87,11 @@ inet_addr(cp) int inet_aton(const char *cp, struct in_addr *addr) { - register u_int32_t val; - register int base, n; - register char c; - unsigned int parts[4]; - register unsigned int *pp = parts; + u_int32_t val; + int base, n; + char c; + u_int parts[4]; + u_int *pp = parts; c = *cp; for (;;) { -- cgit v1.2.3 From de9d623960b6e5562a73600b225d82c2497dfc58 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 17:23:54 +1100 Subject: - (dtucker) [openbsd-compat/inet_nto.c] Update from OpenBSD 1.4 -> 1.6. --- ChangeLog | 3 ++- openbsd-compat/inet_ntoa.c | 10 ++++------ 2 files changed, 6 insertions(+), 7 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 120f68f84..324084562 100644 --- a/ChangeLog +++ b/ChangeLog @@ -33,6 +33,7 @@ - (dtucker) [openbsd-compat/getcwd.c] Replace lstat with fstat to match up with OpenBSD code since we don't support platforms without fstat any more. - (dtucker) [openbsd-compat/inet_aton.c] Update from OpenBSD 1.7 -> 1.9. + - (dtucker) [openbsd-compat/inet_nto.c] Update from OpenBSD 1.4 -> 1.6. 20051105 - (djm) OpenBSD CVS Sync @@ -3275,4 +3276,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.3975 2005/11/10 06:21:21 dtucker Exp $ +$Id: ChangeLog,v 1.3976 2005/11/10 06:23:54 dtucker Exp $ diff --git a/openbsd-compat/inet_ntoa.c b/openbsd-compat/inet_ntoa.c index 16390b178..0eb7b3bd7 100644 --- a/openbsd-compat/inet_ntoa.c +++ b/openbsd-compat/inet_ntoa.c @@ -1,3 +1,4 @@ +/* $OpenBSD: inet_ntoa.c,v 1.6 2005/08/06 20:30:03 espie Exp $ */ /* * Copyright (c) 1983, 1993 * The Regents of the University of California. All rights reserved. @@ -33,10 +34,6 @@ #if defined(BROKEN_INET_NTOA) || !defined(HAVE_INET_NTOA) -#if defined(LIBC_SCCS) && !defined(lint) -static char rcsid[] = "$OpenBSD: inet_ntoa.c,v 1.4 2003/06/02 20:18:35 millert Exp $"; -#endif /* LIBC_SCCS and not lint */ - /* * Convert network-format internet address * to base 256 d.d.d.d representation. @@ -46,10 +43,11 @@ static char rcsid[] = "$OpenBSD: inet_ntoa.c,v 1.4 2003/06/02 20:18:35 millert E #include #include -char *inet_ntoa(struct in_addr in) +char * +inet_ntoa(struct in_addr in) { static char b[18]; - register char *p; + char *p; p = (char *)∈ #define UC(b) (((int)b)&0xff) -- cgit v1.2.3 From 2864039a7ceebbda6fb3e0d99b891c04eb1324bd Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 17:25:26 +1100 Subject: - (dtucker) [openbsd-compat/inet_ntop.c] Update from OpenBSD 1.5 -> 1.7. --- ChangeLog | 5 +++-- openbsd-compat/inet_ntop.c | 26 ++++---------------------- 2 files changed, 7 insertions(+), 24 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 324084562..22e3a3edc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -33,7 +33,8 @@ - (dtucker) [openbsd-compat/getcwd.c] Replace lstat with fstat to match up with OpenBSD code since we don't support platforms without fstat any more. - (dtucker) [openbsd-compat/inet_aton.c] Update from OpenBSD 1.7 -> 1.9. - - (dtucker) [openbsd-compat/inet_nto.c] Update from OpenBSD 1.4 -> 1.6. + - (dtucker) [openbsd-compat/inet_ntoa.c] Update from OpenBSD 1.4 -> 1.6. + - (dtucker) [openbsd-compat/inet_ntop.c] Update from OpenBSD 1.5 -> 1.7. 20051105 - (djm) OpenBSD CVS Sync @@ -3276,4 +3277,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.3976 2005/11/10 06:23:54 dtucker Exp $ +$Id: ChangeLog,v 1.3977 2005/11/10 06:25:26 dtucker Exp $ diff --git a/openbsd-compat/inet_ntop.c b/openbsd-compat/inet_ntop.c index c75a80d2b..e7ca4b7f8 100644 --- a/openbsd-compat/inet_ntop.c +++ b/openbsd-compat/inet_ntop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: inet_ntop.c,v 1.5 2002/08/23 16:27:31 itojun Exp $ */ +/* $OpenBSD: inet_ntop.c,v 1.7 2005/08/06 20:30:03 espie Exp $ */ /* Copyright (c) 1996 by Internet Software Consortium. * @@ -22,14 +22,6 @@ #ifndef HAVE_INET_NTOP -#if defined(LIBC_SCCS) && !defined(lint) -#if 0 -static char rcsid[] = "$From: inet_ntop.c,v 8.7 1996/08/05 08:41:18 vixie Exp $"; -#else -static char rcsid[] = "$OpenBSD: inet_ntop.c,v 1.5 2002/08/23 16:27:31 itojun Exp $"; -#endif -#endif /* LIBC_SCCS and not lint */ - #include #include #include @@ -65,11 +57,7 @@ static const char *inet_ntop6(const u_char *src, char *dst, size_t size); * Paul Vixie, 1996. */ const char * -inet_ntop(af, src, dst, size) - int af; - const void *src; - char *dst; - size_t size; +inet_ntop(int af, const void *src, char *dst, size_t size) { switch (af) { case AF_INET: @@ -95,10 +83,7 @@ inet_ntop(af, src, dst, size) * Paul Vixie, 1996. */ static const char * -inet_ntop4(src, dst, size) - const u_char *src; - char *dst; - size_t size; +inet_ntop4(const u_char *src, char *dst, size_t size) { static const char fmt[] = "%u.%u.%u.%u"; char tmp[sizeof "255.255.255.255"]; @@ -120,10 +105,7 @@ inet_ntop4(src, dst, size) * Paul Vixie, 1996. */ static const char * -inet_ntop6(src, dst, size) - const u_char *src; - char *dst; - size_t size; +inet_ntop6(const u_char *src, char *dst, size_t size) { /* * Note that int32_t and int16_t need only be "at least" large enough -- cgit v1.2.3 From b10b49768234f02343c7ae6a95ebc33279d04ea2 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 17:27:25 +1100 Subject: - (dtucker) [openbsd-compat/daemon.c] Update from OpenBSD 1.5 -> 1.6. --- ChangeLog | 3 ++- openbsd-compat/daemon.c | 5 +---- 2 files changed, 3 insertions(+), 5 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 22e3a3edc..ab00a5aae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -35,6 +35,7 @@ - (dtucker) [openbsd-compat/inet_aton.c] Update from OpenBSD 1.7 -> 1.9. - (dtucker) [openbsd-compat/inet_ntoa.c] Update from OpenBSD 1.4 -> 1.6. - (dtucker) [openbsd-compat/inet_ntop.c] Update from OpenBSD 1.5 -> 1.7. + - (dtucker) [openbsd-compat/daemon.c] Update from OpenBSD 1.5 -> 1.6. 20051105 - (djm) OpenBSD CVS Sync @@ -3277,4 +3278,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.3977 2005/11/10 06:25:26 dtucker Exp $ +$Id: ChangeLog,v 1.3978 2005/11/10 06:27:25 dtucker Exp $ diff --git a/openbsd-compat/daemon.c b/openbsd-compat/daemon.c index 89e75a99e..f8a0680bf 100644 --- a/openbsd-compat/daemon.c +++ b/openbsd-compat/daemon.c @@ -1,3 +1,4 @@ +/* $OpenBSD: daemon.c,v 1.6 2005/08/08 08:05:33 espie Exp $ */ /*- * Copyright (c) 1990, 1993 * The Regents of the University of California. All rights reserved. @@ -33,10 +34,6 @@ #ifndef HAVE_DAEMON -#if defined(LIBC_SCCS) && !defined(lint) -static char rcsid[] = "$OpenBSD: daemon.c,v 1.5 2003/07/15 17:32:41 deraadt Exp $"; -#endif /* LIBC_SCCS and not lint */ - int daemon(int nochdir, int noclose) { -- cgit v1.2.3 From 4e8c2490bbb87345abc44995b448f5c59a939788 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 17:28:35 +1100 Subject: - (dtucker) [openbsd-compat/strsep.c] Update from OpenBSD 1.5 -> 1.6. --- ChangeLog | 3 ++- openbsd-compat/strsep.c | 10 +--------- 2 files changed, 3 insertions(+), 10 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index ab00a5aae..dc1bb31ec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -36,6 +36,7 @@ - (dtucker) [openbsd-compat/inet_ntoa.c] Update from OpenBSD 1.4 -> 1.6. - (dtucker) [openbsd-compat/inet_ntop.c] Update from OpenBSD 1.5 -> 1.7. - (dtucker) [openbsd-compat/daemon.c] Update from OpenBSD 1.5 -> 1.6. + - (dtucker) [openbsd-compat/strsep.c] Update from OpenBSD 1.5 -> 1.6. 20051105 - (djm) OpenBSD CVS Sync @@ -3278,4 +3279,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.3978 2005/11/10 06:27:25 dtucker Exp $ +$Id: ChangeLog,v 1.3979 2005/11/10 06:28:35 dtucker Exp $ diff --git a/openbsd-compat/strsep.c b/openbsd-compat/strsep.c index 9e81980c7..b36eb8fda 100644 --- a/openbsd-compat/strsep.c +++ b/openbsd-compat/strsep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: strsep.c,v 1.5 2003/06/11 21:08:16 deraadt Exp $ */ +/* $OpenBSD: strsep.c,v 1.6 2005/08/08 08:05:37 espie Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -38,14 +38,6 @@ #include #include -#if defined(LIBC_SCCS) && !defined(lint) -#if 0 -static char sccsid[] = "@(#)strsep.c 8.1 (Berkeley) 6/4/93"; -#else -static char *rcsid = "$OpenBSD: strsep.c,v 1.5 2003/06/11 21:08:16 deraadt Exp $"; -#endif -#endif /* LIBC_SCCS and not lint */ - /* * Get next token from string *stringp, where tokens are possibly-empty * strings separated by characters from delim. -- cgit v1.2.3 From 8f0d8f8ea2a902c58b19d596c22999db61cf39d2 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 17:33:00 +1100 Subject: - (dtucker) [openbsd-compat/daemon.c] Update from OpenBSD 1.10 -> 1.13. --- ChangeLog | 3 ++- openbsd-compat/dirname.c | 36 +++++++++++++++++++----------------- 2 files changed, 21 insertions(+), 18 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index dc1bb31ec..2eaa822df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -37,6 +37,7 @@ - (dtucker) [openbsd-compat/inet_ntop.c] Update from OpenBSD 1.5 -> 1.7. - (dtucker) [openbsd-compat/daemon.c] Update from OpenBSD 1.5 -> 1.6. - (dtucker) [openbsd-compat/strsep.c] Update from OpenBSD 1.5 -> 1.6. + - (dtucker) [openbsd-compat/daemon.c] Update from OpenBSD 1.10 -> 1.13. 20051105 - (djm) OpenBSD CVS Sync @@ -3279,4 +3280,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.3979 2005/11/10 06:28:35 dtucker Exp $ +$Id: ChangeLog,v 1.3980 2005/11/10 06:33:00 dtucker Exp $ diff --git a/openbsd-compat/dirname.c b/openbsd-compat/dirname.c index e2cf81db3..30fcb4968 100644 --- a/openbsd-compat/dirname.c +++ b/openbsd-compat/dirname.c @@ -1,7 +1,7 @@ -/* $OpenBSD: dirname.c,v 1.10 2003/06/17 21:56:23 millert Exp $ */ +/* $OpenBSD: dirname.c,v 1.13 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,10 +21,6 @@ #include "includes.h" #ifndef HAVE_DIRNAME -#ifndef lint -static char rcsid[] = "$OpenBSD: dirname.c,v 1.10 2003/06/17 21:56:23 millert Exp $"; -#endif /* not lint */ - #include #include #include @@ -32,16 +28,18 @@ static char rcsid[] = "$OpenBSD: dirname.c,v 1.10 2003/06/17 21:56:23 millert Ex char * dirname(const char *path) { - static char bname[MAXPATHLEN]; - register const char *endp; + static char dname[MAXPATHLEN]; + size_t len; + const char *endp; /* Empty or NULL string gets treated as "." */ if (path == NULL || *path == '\0') { - (void)strlcpy(bname, ".", sizeof bname); - return(bname); + dname[0] = '.'; + dname[1] = '\0'; + return (dname); } - /* Strip trailing slashes */ + /* Strip any trailing slashes */ endp = path + strlen(path) - 1; while (endp > path && *endp == '/') endp--; @@ -52,19 +50,23 @@ dirname(const char *path) /* Either the dir is "/" or there are no slashes */ if (endp == path) { - (void)strlcpy(bname, *endp == '/' ? "/" : ".", sizeof bname); - return(bname); + dname[0] = *endp == '/' ? '/' : '.'; + dname[1] = '\0'; + return (dname); } else { + /* Move forward past the separating slashes */ do { endp--; } while (endp > path && *endp == '/'); } - if (endp - path + 2 > sizeof(bname)) { + len = endp - path + 1; + if (len >= sizeof(dname)) { errno = ENAMETOOLONG; - return(NULL); + return (NULL); } - strlcpy(bname, path, endp - path + 2); - return(bname); + memcpy(dname, path, len); + dname[len] = '\0'; + return (dname); } #endif -- cgit v1.2.3 From ffcd0ecf6be104caec2dbaf27460a11eb425cf52 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 17:37:02 +1100 Subject: - (dtucker) [openbsd-compat/mktemp.c] Update from OpenBSD 1.17 -> 1.19. --- ChangeLog | 3 ++- openbsd-compat/mktemp.c | 15 ++++----------- 2 files changed, 6 insertions(+), 12 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 2eaa822df..35a5cdc92 100644 --- a/ChangeLog +++ b/ChangeLog @@ -38,6 +38,7 @@ - (dtucker) [openbsd-compat/daemon.c] Update from OpenBSD 1.5 -> 1.6. - (dtucker) [openbsd-compat/strsep.c] Update from OpenBSD 1.5 -> 1.6. - (dtucker) [openbsd-compat/daemon.c] Update from OpenBSD 1.10 -> 1.13. + - (dtucker) [openbsd-compat/mktemp.c] Update from OpenBSD 1.17 -> 1.19. 20051105 - (djm) OpenBSD CVS Sync @@ -3280,4 +3281,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.3980 2005/11/10 06:33:00 dtucker Exp $ +$Id: ChangeLog,v 1.3981 2005/11/10 06:37:02 dtucker Exp $ diff --git a/openbsd-compat/mktemp.c b/openbsd-compat/mktemp.c index 8071aa184..88e04c520 100644 --- a/openbsd-compat/mktemp.c +++ b/openbsd-compat/mktemp.c @@ -1,6 +1,7 @@ /* THIS FILE HAS BEEN MODIFIED FROM THE ORIGINAL OPENBSD SOURCE */ /* Changes: Removed mktemp */ +/* $OpenBSD: mktemp.c,v 1.19 2005/08/08 08:05:36 espie Exp $ */ /* * Copyright (c) 1987, 1993 * The Regents of the University of California. All rights reserved. @@ -36,16 +37,10 @@ #if !defined(HAVE_MKDTEMP) || defined(HAVE_STRICT_MKSTEMP) -#if defined(LIBC_SCCS) && !defined(lint) -static char rcsid[] = "$OpenBSD: mktemp.c,v 1.17 2003/06/02 20:18:37 millert Exp $"; -#endif /* LIBC_SCCS and not lint */ - static int _gettemp(char *, int *, int, int); int -mkstemps(path, slen) - char *path; - int slen; +mkstemps(char *path, int slen) { int fd; @@ -53,8 +48,7 @@ mkstemps(path, slen) } int -mkstemp(path) - char *path; +mkstemp(char *path) { int fd; @@ -62,8 +56,7 @@ mkstemp(path) } char * -mkdtemp(path) - char *path; +mkdtemp(char *path) { return(_gettemp(path, (int *)NULL, 1, 0) ? path : (char *)NULL); } -- cgit v1.2.3 From 91b34dc18373cd403a8e25ca5ca69cddb2486edc Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 17:42:40 +1100 Subject: - (dtucker) [openbsd-compat/rresvport.c] Update from OpenBSD 1.6 -> 1.8. --- ChangeLog | 3 ++- openbsd-compat/rresvport.c | 11 ++--------- 2 files changed, 4 insertions(+), 10 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 35a5cdc92..d1b4e51b5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -39,6 +39,7 @@ - (dtucker) [openbsd-compat/strsep.c] Update from OpenBSD 1.5 -> 1.6. - (dtucker) [openbsd-compat/daemon.c] Update from OpenBSD 1.10 -> 1.13. - (dtucker) [openbsd-compat/mktemp.c] Update from OpenBSD 1.17 -> 1.19. + - (dtucker) [openbsd-compat/rresvport.c] Update from OpenBSD 1.6 -> 1.8. 20051105 - (djm) OpenBSD CVS Sync @@ -3281,4 +3282,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.3981 2005/11/10 06:37:02 dtucker Exp $ +$Id: ChangeLog,v 1.3982 2005/11/10 06:42:40 dtucker Exp $ diff --git a/openbsd-compat/rresvport.c b/openbsd-compat/rresvport.c index aa72f4ba2..d13047b38 100644 --- a/openbsd-compat/rresvport.c +++ b/openbsd-compat/rresvport.c @@ -34,22 +34,15 @@ #ifndef HAVE_RRESVPORT_AF -#if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: rresvport.c,v 1.6 2003/06/03 02:11:35 deraadt Exp $"; -#endif /* LIBC_SCCS and not lint */ - -#include "includes.h" - #if 0 int -rresvport(alport) - int *alport; +rresvport(int *alport) { return rresvport_af(alport, AF_INET); } #endif -int +int rresvport_af(int *alport, sa_family_t af) { struct sockaddr_storage ss; -- cgit v1.2.3 From 6f15c07ce33cb621e08fa43b16576236a961e989 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 17:52:08 +1100 Subject: - (dtucker) [openbsd-compat/bindresvport.c] Add "OPENBSD ORIGINAL" marker. --- ChangeLog | 3 ++- openbsd-compat/bindresvport.c | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index d1b4e51b5..a6128fed8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -40,6 +40,7 @@ - (dtucker) [openbsd-compat/daemon.c] Update from OpenBSD 1.10 -> 1.13. - (dtucker) [openbsd-compat/mktemp.c] Update from OpenBSD 1.17 -> 1.19. - (dtucker) [openbsd-compat/rresvport.c] Update from OpenBSD 1.6 -> 1.8. + - (dtucker) [openbsd-compat/bindresvport.c] Add "OPENBSD ORIGINAL" marker. 20051105 - (djm) OpenBSD CVS Sync @@ -3282,4 +3283,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.3982 2005/11/10 06:42:40 dtucker Exp $ +$Id: ChangeLog,v 1.3983 2005/11/10 06:52:08 dtucker Exp $ diff --git a/openbsd-compat/bindresvport.c b/openbsd-compat/bindresvport.c index 8a273f9b5..1a9000584 100644 --- a/openbsd-compat/bindresvport.c +++ b/openbsd-compat/bindresvport.c @@ -28,6 +28,8 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* OPENBSD ORIGINAL: lib/libc/rpc/bindresvport.c */ + #include "includes.h" #ifndef HAVE_BINDRESVPORT_SA -- cgit v1.2.3 From fe80d7a0683d5e8e55a9cb057f9271f9a5b883c5 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 17:54:46 +1100 Subject: - (dtucker) [openbsd-compat/bindresvport.c] Update from OpenBSD 1.16 -> 1.17. --- ChangeLog | 3 ++- openbsd-compat/bindresvport.c | 6 ++---- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index a6128fed8..0b0fc76ee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -41,6 +41,7 @@ - (dtucker) [openbsd-compat/mktemp.c] Update from OpenBSD 1.17 -> 1.19. - (dtucker) [openbsd-compat/rresvport.c] Update from OpenBSD 1.6 -> 1.8. - (dtucker) [openbsd-compat/bindresvport.c] Add "OPENBSD ORIGINAL" marker. + - (dtucker) [openbsd-compat/bindresvport.c] Update from OpenBSD 1.16 -> 1.17. 20051105 - (djm) OpenBSD CVS Sync @@ -3283,4 +3284,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.3983 2005/11/10 06:52:08 dtucker Exp $ +$Id: ChangeLog,v 1.3984 2005/11/10 06:54:46 dtucker Exp $ diff --git a/openbsd-compat/bindresvport.c b/openbsd-compat/bindresvport.c index 1a9000584..7f48fd03a 100644 --- a/openbsd-compat/bindresvport.c +++ b/openbsd-compat/bindresvport.c @@ -1,6 +1,6 @@ /* This file has be substantially modified from the original OpenBSD source */ -/* $OpenBSD: bindresvport.c,v 1.15 2003/05/20 22:42:35 deraadt Exp $ */ +/* $OpenBSD: bindresvport.c,v 1.16 2005/04/01 07:44:03 otto Exp $ */ /* * Copyright 1996, Jason Downs. All rights reserved. @@ -44,9 +44,7 @@ * Bind a socket to a privileged IP port */ int -bindresvport_sa(sd, sa) - int sd; - struct sockaddr *sa; +bindresvport_sa(int sd, struct sockaddr *sa) { int error, af; struct sockaddr_storage myaddr; -- cgit v1.2.3 From 30d6974124fd54c5bd9f101d9e31291fc9eda1b9 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 19:29:12 +1100 Subject: - (dtucker) [openbsd-compat/sigact.c] Update from OpenBSD 1.3 -> 1.4. Id and copyright sync only, there were no substantial changes we need. --- ChangeLog | 4 +++- openbsd-compat/base64.c | 5 +++-- openbsd-compat/bsd-closefrom.c | 4 ++-- openbsd-compat/sigact.c | 4 ++-- 4 files changed, 10 insertions(+), 7 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 0b0fc76ee..da073c281 100644 --- a/ChangeLog +++ b/ChangeLog @@ -42,6 +42,8 @@ - (dtucker) [openbsd-compat/rresvport.c] Update from OpenBSD 1.6 -> 1.8. - (dtucker) [openbsd-compat/bindresvport.c] Add "OPENBSD ORIGINAL" marker. - (dtucker) [openbsd-compat/bindresvport.c] Update from OpenBSD 1.16 -> 1.17. + - (dtucker) [openbsd-compat/sigact.c] Update from OpenBSD 1.3 -> 1.4. + Id and copyright sync only, there were no substantial changes we need. 20051105 - (djm) OpenBSD CVS Sync @@ -3284,4 +3286,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.3984 2005/11/10 06:54:46 dtucker Exp $ +$Id: ChangeLog,v 1.3985 2005/11/10 08:29:12 dtucker Exp $ diff --git a/openbsd-compat/base64.c b/openbsd-compat/base64.c index 6eadb5c10..9a60f583b 100644 --- a/openbsd-compat/base64.c +++ b/openbsd-compat/base64.c @@ -139,7 +139,7 @@ b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize) size_t datalength = 0; u_char input[3]; u_char output[4]; - int i; + u_int i; while (2 < srclength) { input[0] = *src++; @@ -206,7 +206,8 @@ b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize) int b64_pton(char const *src, u_char *target, size_t targsize) { - int tarindex, state, ch; + u_int tarindex, state; + int ch; char *pos; state = 0; diff --git a/openbsd-compat/bsd-closefrom.c b/openbsd-compat/bsd-closefrom.c index 61a9fa391..5b7b94ae4 100644 --- a/openbsd-compat/bsd-closefrom.c +++ b/openbsd-compat/bsd-closefrom.c @@ -46,7 +46,7 @@ # define OPEN_MAX 256 #endif -RCSID("$Id: bsd-closefrom.c,v 1.1 2004/08/15 08:41:00 djm Exp $"); +RCSID("$Id: bsd-closefrom.c,v 1.2 2005/11/10 08:29:13 dtucker Exp $"); #ifndef lint static const char sudorcsid[] = "$Sudo: closefrom.c,v 1.6 2004/06/01 20:51:56 millert Exp $"; @@ -67,7 +67,7 @@ closefrom(int lowfd) /* Check for a /proc/$$/fd directory. */ len = snprintf(fdpath, sizeof(fdpath), "/proc/%ld/fd", (long)getpid()); - if (len != -1 && len <= sizeof(fdpath) && (dirp = opendir(fdpath))) { + if (len >= 0 && (u_int)len <= sizeof(fdpath) && (dirp = opendir(fdpath))) { while ((dent = readdir(dirp)) != NULL) { fd = strtol(dent->d_name, &endp, 10); if (dent->d_name != endp && *endp == '\0' && diff --git a/openbsd-compat/sigact.c b/openbsd-compat/sigact.c index d1431a0d9..8b8e4dd2c 100644 --- a/openbsd-compat/sigact.c +++ b/openbsd-compat/sigact.c @@ -1,7 +1,7 @@ -/* $OpenBSD: sigaction.c,v 1.3 1999/06/27 08:14:21 millert Exp $ */ +/* $OpenBSD: sigaction.c,v 1.4 2001/01/22 18:01:48 millert Exp $ */ /**************************************************************************** - * Copyright (c) 1998 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * -- cgit v1.2.3 From 9d30d1392289645b5275646bf63b42cc17ef0cac Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 10 Nov 2005 19:43:48 +1100 Subject: - (dtucker) [openbsd-compat/sigact.h] Update from OpenBSD 1.2 -> 1.3. Id and copyright sync only, there were no substantial changes we need. --- ChangeLog | 4 +++- openbsd-compat/sigact.h | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 8a530da4d..15eabc51b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -46,6 +46,8 @@ Id and copyright sync only, there were no substantial changes we need. - (dtucker) [openbsd-compat/bsd-closefrom.c openbsd-compat/base64.c] -Wsign-compare fixes from djm. + - (dtucker) [openbsd-compat/sigact.h] Update from OpenBSD 1.2 -> 1.3. + Id and copyright sync only, there were no substantial changes we need. 20051105 - (djm) OpenBSD CVS Sync @@ -3288,4 +3290,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.3987 2005/11/10 08:31:37 dtucker Exp $ +$Id: ChangeLog,v 1.3988 2005/11/10 08:43:48 dtucker Exp $ diff --git a/openbsd-compat/sigact.h b/openbsd-compat/sigact.h index 7821e09e8..db96d0a5c 100644 --- a/openbsd-compat/sigact.h +++ b/openbsd-compat/sigact.h @@ -1,7 +1,7 @@ -/* $OpenBSD: SigAction.h,v 1.2 1999/06/27 08:15:19 millert Exp $ */ +/* $OpenBSD: SigAction.h,v 1.3 2001/01/22 18:01:32 millert Exp $ */ /**************************************************************************** - * Copyright (c) 1998 Free Software Foundation, Inc. * + * Copyright (c) 1998,2000 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -34,7 +34,7 @@ ****************************************************************************/ /* - * $From: SigAction.h,v 1.5 1999/06/19 23:00:54 tom Exp $ + * $From: SigAction.h,v 1.6 2000/12/10 02:36:10 tom Exp $ * * This file exists to handle non-POSIX systems which don't have , * and usually no sigaction() nor -- cgit v1.2.3 From 16fd99c72702049030901b15a158a2159fe8f428 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Sat, 12 Nov 2005 14:06:29 +1100 Subject: - (dtucker) [openbsd-compat/getrrsetbyname.c] Restore Portable-specific ifdef lost during sync. Spotted by tim@. --- ChangeLog | 6 +++++- openbsd-compat/getrrsetbyname.c | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 291bf970a..e87996bb4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +20051112 + - (dtucker) [openbsd-compat/getrrsetbyname.c] Restore Portable-specific + ifdef lost during sync. Spotted by tim@. + 20051110 - (dtucker) [openbsd-compat/setenv.c] Merge changes for __findenv from OpenBSD getenv.c revs 1.4 - 1.8 (ANSIfication of arguments, removal of @@ -3292,4 +3296,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.3989 2005/11/10 10:30:36 dtucker Exp $ +$Id: ChangeLog,v 1.3990 2005/11/12 03:06:29 dtucker Exp $ diff --git a/openbsd-compat/getrrsetbyname.c b/openbsd-compat/getrrsetbyname.c index 8d571beea..bea6aea3b 100644 --- a/openbsd-compat/getrrsetbyname.c +++ b/openbsd-compat/getrrsetbyname.c @@ -262,9 +262,11 @@ getrrsetbyname(const char *hostname, unsigned int rdclass, rrset->rri_ttl = response->answer->ttl; rrset->rri_nrdatas = response->header.ancount; +#ifdef HAVE_HEADER_AD /* check for authenticated data */ if (response->header.ad == 1) rrset->rri_flags |= RRSET_VALIDATED; +#endif /* copy name from answer section */ rrset->rri_name = strdup(response->answer->name); -- cgit v1.2.3 From 7cb2a78ae2657fa85f9996f63b053d036531331e Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Sat, 12 Nov 2005 14:14:52 +1100 Subject: - (dtucker) [openbsd-compat/realpath.c] Sync $OpenBSD tag. --- ChangeLog | 3 ++- openbsd-compat/realpath.c | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index e87996bb4..550834eeb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ 20051112 - (dtucker) [openbsd-compat/getrrsetbyname.c] Restore Portable-specific ifdef lost during sync. Spotted by tim@. + - (dtucker) [openbsd-compat/realpath.c] Sync $OpenBSD tag. 20051110 - (dtucker) [openbsd-compat/setenv.c] Merge changes for __findenv from @@ -3296,4 +3297,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.3990 2005/11/12 03:06:29 dtucker Exp $ +$Id: ChangeLog,v 1.3991 2005/11/12 03:14:52 dtucker Exp $ diff --git a/openbsd-compat/realpath.c b/openbsd-compat/realpath.c index 8c889db3e..b6120d034 100644 --- a/openbsd-compat/realpath.c +++ b/openbsd-compat/realpath.c @@ -1,3 +1,4 @@ +/* $OpenBSD: realpath.c,v 1.13 2005/08/08 08:05:37 espie Exp $ */ /* * Copyright (c) 2003 Constantin S. Svintsoff * -- cgit v1.2.3 From 5a0bdf770cd3df4c39f832b997c223a3e7df1fd2 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Sat, 12 Nov 2005 14:28:05 +1100 Subject: - (dtucker) [openbsd-compat/{realpath.c,stroll.c,rresvport.c}] $OpenBSD tag. --- ChangeLog | 4 ++-- openbsd-compat/rresvport.c | 1 + openbsd-compat/strtoll.c | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 550834eeb..c8d60704a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,7 @@ 20051112 - (dtucker) [openbsd-compat/getrrsetbyname.c] Restore Portable-specific ifdef lost during sync. Spotted by tim@. - - (dtucker) [openbsd-compat/realpath.c] Sync $OpenBSD tag. + - (dtucker) [openbsd-compat/{realpath.c,stroll.c,rresvport.c}] $OpenBSD tag. 20051110 - (dtucker) [openbsd-compat/setenv.c] Merge changes for __findenv from @@ -3297,4 +3297,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.3991 2005/11/12 03:14:52 dtucker Exp $ +$Id: ChangeLog,v 1.3992 2005/11/12 03:28:05 dtucker Exp $ diff --git a/openbsd-compat/rresvport.c b/openbsd-compat/rresvport.c index d13047b38..71cf6e6eb 100644 --- a/openbsd-compat/rresvport.c +++ b/openbsd-compat/rresvport.c @@ -1,3 +1,4 @@ +/* $OpenBSD: rresvport.c,v 1.9 2005/11/10 10:00:17 espie Exp $ */ /* * Copyright (c) 1995, 1996, 1998 Theo de Raadt. All rights reserved. * Copyright (c) 1983, 1993, 1994 diff --git a/openbsd-compat/strtoll.c b/openbsd-compat/strtoll.c index 76e87ccbe..f62930388 100644 --- a/openbsd-compat/strtoll.c +++ b/openbsd-compat/strtoll.c @@ -1,3 +1,4 @@ +/* $OpenBSD: strtoll.c,v 1.6 2005/11/10 10:00:17 espie Exp $ */ /*- * Copyright (c) 1992 The Regents of the University of California. * All rights reserved. -- cgit v1.2.3 From 4123636471185c739a3d03c763cebee2661f8c2d Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Sun, 20 Nov 2005 14:09:59 +1100 Subject: - (dtucker) [openbsd-compat/openssl-compat.h] Add comment explaining what is going on. --- ChangeLog | 6 +++++- openbsd-compat/openssl-compat.h | 9 +++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index b3eb526f6..68c99482b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +20051120 + - (dtucker) [openbsd-compat/openssl-compat.h] Add comment explaining what + is going on. + 20051112 - (dtucker) [openbsd-compat/getrrsetbyname.c] Restore Portable-specific ifdef lost during sync. Spotted by tim@. @@ -3302,4 +3306,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.3995 2005/11/12 10:30:07 dtucker Exp $ +$Id: ChangeLog,v 1.3996 2005/11/20 03:09:59 dtucker Exp $ diff --git a/openbsd-compat/openssl-compat.h b/openbsd-compat/openssl-compat.h index d9b2fa55f..4988485f1 100644 --- a/openbsd-compat/openssl-compat.h +++ b/openbsd-compat/openssl-compat.h @@ -1,4 +1,4 @@ -/* $Id: openssl-compat.h,v 1.1 2005/06/09 11:45:11 dtucker Exp $ */ +/* $Id: openssl-compat.h,v 1.2 2005/11/20 03:10:00 dtucker Exp $ */ /* * Copyright (c) 2005 Darren Tucker @@ -43,7 +43,12 @@ extern const EVP_CIPHER *evp_acss(void); #endif /* - * insert comment here + * We overload some of the OpenSSL crypto functions with ssh_* equivalents + * which cater for older and/or less featureful OpenSSL version. + * + * In order for the compat library to call the real functions, it must + * define SSH_DONT_OVERLOAD_OPENSSL_FUNCS before including this file and + * implement the ssh_* equivalents. */ #ifdef SSH_OLD_EVP -- cgit v1.2.3 From 57f3915b5513495b11e7052df0260c7896b7b612 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Thu, 24 Nov 2005 19:58:19 +1100 Subject: - (djm) [configure.ac openbsd-compat/Makefile.in openbsd-compat/bsd-asprintf.c openbsd-compat/bsd-snprintf.c openbsd-compat/openbsd-compat.h] Add an asprintf() implementation, after syncing our {v,}snprintf() implementation with some extra fixes from Samba's version. With help and debugging from dtucker and tim; ok dtucker@ --- ChangeLog | 9 +- configure.ac | 70 ++++- openbsd-compat/Makefile.in | 4 +- openbsd-compat/bsd-asprintf.c | 95 +++++++ openbsd-compat/bsd-snprintf.c | 610 +++++++++++++++++++++++++--------------- openbsd-compat/openbsd-compat.h | 10 +- 6 files changed, 562 insertions(+), 236 deletions(-) create mode 100644 openbsd-compat/bsd-asprintf.c (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 1164b770d..c869db7d9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +20051122 + - (djm) [configure.ac openbsd-compat/Makefile.in openbsd-compat/bsd-asprintf.c + openbsd-compat/bsd-snprintf.c openbsd-compat/openbsd-compat.h] Add an + asprintf() implementation, after syncing our {v,}snprintf() implementation + with some extra fixes from Samba's version. With help and debugging from + dtucker and tim; ok dtucker@ + 20051122 - (dtucker) OpenBSD CVS Sync - deraadt@cvs.openbsd.org 2005/11/12 18:37:59 @@ -3333,4 +3340,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.4002 2005/11/22 08:55:13 dtucker Exp $ +$Id: ChangeLog,v 1.4003 2005/11/24 08:58:19 djm Exp $ diff --git a/configure.ac b/configure.ac index 2885a69fb..396552888 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# $Id: configure.ac,v 1.307 2005/11/12 07:42:37 dtucker Exp $ +# $Id: configure.ac,v 1.308 2005/11/24 08:58:20 djm Exp $ # # Copyright (c) 1999-2004 Damien Miller # @@ -426,6 +426,7 @@ mips-sony-bsd|mips-sony-newsos4) ;; # UnixWare 1.x, UnixWare 2.x, and others based on code from Univel. *-*-sysv4.2*) + CFLAGS="$CFLAGS -Dva_list=_VA_LIST" AC_DEFINE(USE_PIPES) AC_DEFINE(SETEUID_BREAKS_SETUID) AC_DEFINE(BROKEN_SETREUID) @@ -1106,6 +1107,7 @@ AC_ARG_WITH(audit, dnl Checks for library functions. Please keep in alphabetical order AC_CHECK_FUNCS( \ arc4random \ + asprintf \ b64_ntop \ __b64_ntop \ b64_pton \ @@ -1181,6 +1183,7 @@ AC_CHECK_FUNCS( \ truncate \ unsetenv \ updwtmpx \ + vasprintf \ vhangup \ vsnprintf \ waitpid \ @@ -1299,6 +1302,40 @@ int main(void){char b[5];snprintf(b,5,"123456789");exit(b[4]!='\0');} ) fi +# If we don't have a working asprintf, then we strongly depend on vsnprintf +# returning the right thing on overflow: the number of characters it tried to +# create (as per SUSv3) +if test "x$ac_cv_func_asprintf" != "xyes" && \ + test "x$ac_cv_func_vsnprintf" = "xyes" ; then + AC_MSG_CHECKING([whether vsnprintf returns correct values on overflow]) + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +#include +#include + +int x_snprintf(char *str,size_t count,const char *fmt,...) +{ + size_t ret; va_list ap; + va_start(ap, fmt); ret = vsnprintf(str, count, fmt, ap); va_end(ap); + return ret; +} +int main(void) +{ + char x[1]; + exit(x_snprintf(x, 1, "%s %d", "hello", 12345) == 11 ? 0 : 1); +} ]])], + [AC_MSG_RESULT(yes)], + [ + AC_MSG_RESULT(no) + AC_DEFINE(BROKEN_SNPRINTF, 1, + [Define if your snprintf is busted]) + AC_MSG_WARN([****** Your vsnprintf() function is broken, complain to your vendor]) + ], + [ AC_MSG_WARN([cross compiling: Assuming working vsnprintf()]) ] + ) +fi + # Check for missing getpeereid (or equiv) support NO_PEERCHECK="" if test "x$ac_cv_func_getpeereid" != "xyes" ; then @@ -1978,7 +2015,10 @@ if test ! -z "$SONY" ; then LIBS="$LIBS -liberty"; fi -# Checks for data types +# Check for long long datatypes +AC_CHECK_TYPES([long long, unsigned long long, long double]) + +# Check datatype sizes AC_CHECK_SIZEOF(char, 1) AC_CHECK_SIZEOF(short int, 2) AC_CHECK_SIZEOF(int, 4) @@ -2669,6 +2709,32 @@ if test "x$ac_cv_cc_implements___func__" = "xyes" ; then AC_DEFINE(HAVE___func__, 1, [Define if compiler implements __func__]) fi +AC_CACHE_CHECK([whether va_copy exists], ac_cv_have_va_copy, [ + AC_TRY_LINK( + [#include + va_list x,y;], + [va_copy(x,y);], + [ ac_cv_have_va_copy="yes" ], + [ ac_cv_have_va_copy="no" ] + ) +]) +if test "x$ac_cv_have_va_copy" = "xyes" ; then + AC_DEFINE(HAVE_VA_COPY, 1, [Define if va_copy exists]) +fi + +AC_CACHE_CHECK([whether __va_copy exists], ac_cv_have___va_copy, [ + AC_TRY_LINK( + [#include + va_list x,y;], + [__va_copy(x,y);], + [ ac_cv_have___va_copy="yes" ], + [ ac_cv_have___va_copy="no" ] + ) +]) +if test "x$ac_cv_have___va_copy" = "xyes" ; then + AC_DEFINE(HAVE___VA_COPY, 1, [Define if __va_copy exists]) +fi + AC_CACHE_CHECK([whether getopt has optreset support], ac_cv_have_getopt_optreset, [ AC_TRY_LINK( diff --git a/openbsd-compat/Makefile.in b/openbsd-compat/Makefile.in index 6f5ee2845..89ac6cdaf 100644 --- a/openbsd-compat/Makefile.in +++ b/openbsd-compat/Makefile.in @@ -1,4 +1,4 @@ -# $Id: Makefile.in,v 1.35 2005/08/26 20:15:20 tim Exp $ +# $Id: Makefile.in,v 1.36 2005/11/24 08:58:21 djm Exp $ sysconfdir=@sysconfdir@ piddir=@piddir@ @@ -18,7 +18,7 @@ LDFLAGS=-L. @LDFLAGS@ OPENBSD=base64.o basename.o bindresvport.o daemon.o dirname.o getcwd.o getgrouplist.o getopt.o getrrsetbyname.o glob.o inet_aton.o inet_ntoa.o inet_ntop.o mktemp.o readpassphrase.o realpath.o rresvport.o setenv.o setproctitle.o sigact.o strlcat.o strlcpy.o strmode.o strsep.o strtonum.o strtoll.o strtoul.o vis.o -COMPAT=bsd-arc4random.o bsd-closefrom.o bsd-cray.o bsd-cygwin_util.o bsd-getpeereid.o bsd-misc.o bsd-nextstep.o bsd-openpty.o bsd-snprintf.o bsd-waitpid.o fake-rfc2553.o openssl-compat.o xmmap.o xcrypt.o +COMPAT=bsd-arc4random.o bsd-asprintf.o bsd-closefrom.o bsd-cray.o bsd-cygwin_util.o bsd-getpeereid.o bsd-misc.o bsd-nextstep.o bsd-openpty.o bsd-snprintf.o bsd-waitpid.o fake-rfc2553.o openssl-compat.o xmmap.o xcrypt.o PORTS=port-irix.o port-aix.o port-uw.o diff --git a/openbsd-compat/bsd-asprintf.c b/openbsd-compat/bsd-asprintf.c new file mode 100644 index 000000000..5ca01f80f --- /dev/null +++ b/openbsd-compat/bsd-asprintf.c @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2004 Darren Tucker. + * + * Based originally on asprintf.c from OpenBSD: + * Copyright (c) 1997 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 + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "includes.h" + +#ifndef HAVE_VASPRINTF + +#ifndef VA_COPY +# ifdef HAVE_VA_COPY +# define VA_COPY(dest, src) va_copy(dest, src) +# else +# ifdef HAVE___VA_COPY +# define VA_COPY(dest, src) __va_copy(dest, src) +# else +# define VA_COPY(dest, src) (dest) = (src) +# endif +# endif +#endif + +#define INIT_SZ 128 + +int vasprintf(char **str, const char *fmt, va_list ap) +{ + int ret = -1; + va_list ap2; + char *string, *newstr; + size_t len; + + VA_COPY(ap2, ap); + if ((string = malloc(INIT_SZ)) == NULL) + goto fail; + + ret = vsnprintf(string, INIT_SZ, fmt, ap2); + if (ret >= 0 && ret < INIT_SZ) { /* succeeded with initial alloc */ + *str = string; + } else if (ret == INT_MAX) { /* shouldn't happen */ + goto fail; + } else { /* bigger than initial, realloc allowing for nul */ + len = (size_t)ret + 1; + if ((newstr = realloc(string, len)) == NULL) { + free(string); + goto fail; + } else { + va_end(ap2); + VA_COPY(ap2, ap); + ret = vsnprintf(newstr, len, fmt, ap2); + if (ret >= 0 && (size_t)ret < len) { + *str = newstr; + } else { /* failed with realloc'ed string, give up */ + free(newstr); + goto fail; + } + } + } + va_end(ap2); + return (ret); + +fail: + *str = NULL; + errno = ENOMEM; + va_end(ap2); + return (-1); +} +#endif + +#ifndef HAVE_ASPRINTF +int asprintf(char **str, const char *fmt, ...) +{ + va_list ap; + int ret; + + *str = NULL; + va_start(ap, fmt); + ret = vasprintf(str, fmt, ap); + va_end(ap); + + return ret; +} +#endif diff --git a/openbsd-compat/bsd-snprintf.c b/openbsd-compat/bsd-snprintf.c index b5a7ef7a0..ca275abdf 100644 --- a/openbsd-compat/bsd-snprintf.c +++ b/openbsd-compat/bsd-snprintf.c @@ -45,45 +45,82 @@ * missing. Some systems only have snprintf() but not vsnprintf(), so * the code is now broken down under HAVE_SNPRINTF and HAVE_VSNPRINTF. * - * Ben Lindstrom 09/27/00 for OpenSSH - * Welcome to the world of %lld and %qd support. With other - * long long support. This is needed for sftp-server to work - * right. + * Andrew Tridgell (tridge@samba.org) Oct 1998 + * fixed handling of %.0f + * added test for HAVE_LONG_DOUBLE * - * Ben Lindstrom 02/12/01 for OpenSSH - * Removed all hint of VARARGS stuff and banished it to the void, - * and did a bit of KNF style work to make things a bit more - * acceptable. Consider stealing from mutt or enlightenment. + * tridge@samba.org, idra@samba.org, April 2001 + * got rid of fcvt code (twas buggy and made testing harder) + * added C99 semantics + * + * date: 2002/12/19 19:56:31; author: herb; state: Exp; lines: +2 -0 + * actually print args for %g and %e + * + * date: 2002/06/03 13:37:52; author: jmcd; state: Exp; lines: +8 -0 + * Since includes.h isn't included here, VA_COPY has to be defined here. I don't + * see any include file that is guaranteed to be here, so I'm defining it + * locally. Fixes AIX and Solaris builds. + * + * date: 2002/06/03 03:07:24; author: tridge; state: Exp; lines: +5 -13 + * put the ifdef for HAVE_VA_COPY in one place rather than in lots of + * functions + * + * date: 2002/05/17 14:51:22; author: jmcd; state: Exp; lines: +21 -4 + * Fix usage of va_list passed as an arg. Use __va_copy before using it + * when it exists. + * + * date: 2002/04/16 22:38:04; author: idra; state: Exp; lines: +20 -14 + * Fix incorrect zpadlen handling in fmtfp. + * Thanks to Ollie Oldham for spotting it. + * few mods to make it easier to compile the tests. + * addedd the "Ollie" test to the floating point ones. + * + * Martin Pool (mbp@samba.org) April 2003 + * Remove NO_CONFIG_H so that the test case can be built within a source + * tree with less trouble. + * Remove unnecessary SAFE_FREE() definition. + * + * Martin Pool (mbp@samba.org) May 2003 + * Put in a prototype for dummy_snprintf() to quiet compiler warnings. + * + * Move #endif to make sure VA_COPY, LDOUBLE, etc are defined even + * if the C library has some snprintf functions already. **************************************************************/ #include "includes.h" -RCSID("$Id: bsd-snprintf.c,v 1.9 2004/09/23 11:35:09 dtucker Exp $"); +RCSID("$Id: bsd-snprintf.c,v 1.10 2005/11/24 08:58:21 djm Exp $"); #if defined(BROKEN_SNPRINTF) /* For those with broken snprintf() */ # undef HAVE_SNPRINTF # undef HAVE_VSNPRINTF #endif -#if !defined(HAVE_SNPRINTF) || !defined(HAVE_VSNPRINTF) - -static void -dopr(char *buffer, size_t maxlen, const char *format, va_list args); - -static void -fmtstr(char *buffer, size_t *currlen, size_t maxlen, char *value, int flags, - int min, int max); +#ifndef VA_COPY +# ifdef HAVE_VA_COPY +# define VA_COPY(dest, src) va_copy(dest, src) +# else +# ifdef HAVE___VA_COPY +# define VA_COPY(dest, src) __va_copy(dest, src) +# else +# define VA_COPY(dest, src) (dest) = (src) +# endif +# endif +#endif -static void -fmtint(char *buffer, size_t *currlen, size_t maxlen, long value, int base, - int min, int max, int flags); +#if !defined(HAVE_SNPRINTF) || !defined(HAVE_VSNPRINTF) -static void -fmtfp(char *buffer, size_t *currlen, size_t maxlen, long double fvalue, - int min, int max, int flags); +#ifdef HAVE_LONG_DOUBLE +# define LDOUBLE long double +#else +# define LDOUBLE double +#endif -static void -dopr_outch(char *buffer, size_t *currlen, size_t maxlen, char c); +#ifdef HAVE_LONG_LONG +# define LLONG long long +#else +# define LLONG long +#endif /* * dopr(): poor man's version of doprintf @@ -109,28 +146,49 @@ dopr_outch(char *buffer, size_t *currlen, size_t maxlen, char c); #define DP_F_UNSIGNED (1 << 6) /* Conversion Flags */ -#define DP_C_SHORT 1 -#define DP_C_LONG 2 -#define DP_C_LDOUBLE 3 -#define DP_C_LONG_LONG 4 - -#define char_to_int(p) (p - '0') -#define abs_val(p) (p < 0 ? -p : p) - +#define DP_C_SHORT 1 +#define DP_C_LONG 2 +#define DP_C_LDOUBLE 3 +#define DP_C_LLONG 4 + +#define char_to_int(p) ((p)- '0') +#ifndef MAX +# define MAX(p,q) (((p) >= (q)) ? (p) : (q)) +#endif -static void -dopr(char *buffer, size_t maxlen, const char *format, va_list args) +static size_t dopr(char *buffer, size_t maxlen, const char *format, + va_list args_in); +static void fmtstr(char *buffer, size_t *currlen, size_t maxlen, + char *value, int flags, int min, int max); +static void fmtint(char *buffer, size_t *currlen, size_t maxlen, + long value, int base, int min, int max, int flags); +static void fmtfp(char *buffer, size_t *currlen, size_t maxlen, + LDOUBLE fvalue, int min, int max, int flags); +static void dopr_outch(char *buffer, size_t *currlen, size_t maxlen, char c); + +static size_t dopr(char *buffer, size_t maxlen, const char *format, va_list args_in) { - char *strvalue, ch; - long value; - long double fvalue; - int min = 0, max = -1, state = DP_S_DEFAULT, flags = 0, cflags = 0; - size_t currlen = 0; - + char ch; + LLONG value; + LDOUBLE fvalue; + char *strvalue; + int min; + int max; + int state; + int flags; + int cflags; + size_t currlen; + va_list args; + + VA_COPY(args, args_in); + + state = DP_S_DEFAULT; + currlen = flags = cflags = min = 0; + max = -1; ch = *format++; - + while (state != DP_S_DONE) { - if ((ch == '\0') || (currlen >= maxlen)) + if (ch == '\0') state = DP_S_DONE; switch(state) { @@ -138,7 +196,7 @@ dopr(char *buffer, size_t maxlen, const char *format, va_list args) if (ch == '%') state = DP_S_FLAGS; else - dopr_outch(buffer, &currlen, maxlen, ch); + dopr_outch (buffer, &currlen, maxlen, ch); ch = *format++; break; case DP_S_FLAGS: @@ -170,34 +228,37 @@ dopr(char *buffer, size_t maxlen, const char *format, va_list args) break; case DP_S_MIN: if (isdigit((unsigned char)ch)) { - min = 10 * min + char_to_int (ch); + min = 10*min + char_to_int (ch); ch = *format++; } else if (ch == '*') { min = va_arg (args, int); ch = *format++; state = DP_S_DOT; - } else + } else { state = DP_S_DOT; + } break; case DP_S_DOT: if (ch == '.') { state = DP_S_MAX; ch = *format++; - } else + } else { state = DP_S_MOD; + } break; case DP_S_MAX: if (isdigit((unsigned char)ch)) { if (max < 0) max = 0; - max = 10 * max + char_to_int(ch); + max = 10*max + char_to_int (ch); ch = *format++; } else if (ch == '*') { max = va_arg (args, int); ch = *format++; state = DP_S_MOD; - } else + } else { state = DP_S_MOD; + } break; case DP_S_MOD: switch (ch) { @@ -208,15 +269,11 @@ dopr(char *buffer, size_t maxlen, const char *format, va_list args) case 'l': cflags = DP_C_LONG; ch = *format++; - if (ch == 'l') { - cflags = DP_C_LONG_LONG; + if (ch == 'l') { /* It's a long long */ + cflags = DP_C_LLONG; ch = *format++; } break; - case 'q': - cflags = DP_C_LONG_LONG; - ch = *format++; - break; case 'L': cflags = DP_C_LDOUBLE; ch = *format++; @@ -231,37 +288,37 @@ dopr(char *buffer, size_t maxlen, const char *format, va_list args) case 'd': case 'i': if (cflags == DP_C_SHORT) - value = va_arg(args, int); + value = va_arg (args, int); else if (cflags == DP_C_LONG) - value = va_arg(args, long int); - else if (cflags == DP_C_LONG_LONG) - value = va_arg (args, long long); + value = va_arg (args, long int); + else if (cflags == DP_C_LLONG) + value = va_arg (args, LLONG); else value = va_arg (args, int); - fmtint(buffer, &currlen, maxlen, value, 10, min, max, flags); + fmtint (buffer, &currlen, maxlen, value, 10, min, max, flags); break; case 'o': flags |= DP_F_UNSIGNED; if (cflags == DP_C_SHORT) - value = va_arg(args, unsigned int); + value = va_arg (args, unsigned int); else if (cflags == DP_C_LONG) - value = va_arg(args, unsigned long int); - else if (cflags == DP_C_LONG_LONG) - value = va_arg(args, unsigned long long); + value = (long)va_arg (args, unsigned long int); + else if (cflags == DP_C_LLONG) + value = (long)va_arg (args, unsigned LLONG); else - value = va_arg(args, unsigned int); - fmtint(buffer, &currlen, maxlen, value, 8, min, max, flags); + value = (long)va_arg (args, unsigned int); + fmtint (buffer, &currlen, maxlen, value, 8, min, max, flags); break; case 'u': flags |= DP_F_UNSIGNED; if (cflags == DP_C_SHORT) - value = va_arg(args, unsigned int); + value = va_arg (args, unsigned int); else if (cflags == DP_C_LONG) - value = va_arg(args, unsigned long int); - else if (cflags == DP_C_LONG_LONG) - value = va_arg(args, unsigned long long); + value = (long)va_arg (args, unsigned long int); + else if (cflags == DP_C_LLONG) + value = (LLONG)va_arg (args, unsigned LLONG); else - value = va_arg(args, unsigned int); + value = (long)va_arg (args, unsigned int); fmtint (buffer, &currlen, maxlen, value, 10, min, max, flags); break; case 'X': @@ -269,79 +326,86 @@ dopr(char *buffer, size_t maxlen, const char *format, va_list args) case 'x': flags |= DP_F_UNSIGNED; if (cflags == DP_C_SHORT) - value = va_arg(args, unsigned int); + value = va_arg (args, unsigned int); else if (cflags == DP_C_LONG) - value = va_arg(args, unsigned long int); - else if (cflags == DP_C_LONG_LONG) - value = va_arg(args, unsigned long long); + value = (long)va_arg (args, unsigned long int); + else if (cflags == DP_C_LLONG) + value = (LLONG)va_arg (args, unsigned LLONG); else - value = va_arg(args, unsigned int); - fmtint(buffer, &currlen, maxlen, value, 16, min, max, flags); + value = (long)va_arg (args, unsigned int); + fmtint (buffer, &currlen, maxlen, value, 16, min, max, flags); break; case 'f': if (cflags == DP_C_LDOUBLE) - fvalue = va_arg(args, long double); + fvalue = va_arg (args, LDOUBLE); else - fvalue = va_arg(args, double); + fvalue = va_arg (args, double); /* um, floating point? */ - fmtfp(buffer, &currlen, maxlen, fvalue, min, max, flags); + fmtfp (buffer, &currlen, maxlen, fvalue, min, max, flags); break; case 'E': flags |= DP_F_UP; case 'e': if (cflags == DP_C_LDOUBLE) - fvalue = va_arg(args, long double); + fvalue = va_arg (args, LDOUBLE); else - fvalue = va_arg(args, double); + fvalue = va_arg (args, double); + fmtfp (buffer, &currlen, maxlen, fvalue, min, max, flags); break; case 'G': flags |= DP_F_UP; case 'g': if (cflags == DP_C_LDOUBLE) - fvalue = va_arg(args, long double); + fvalue = va_arg (args, LDOUBLE); else - fvalue = va_arg(args, double); + fvalue = va_arg (args, double); + fmtfp (buffer, &currlen, maxlen, fvalue, min, max, flags); break; case 'c': - dopr_outch(buffer, &currlen, maxlen, va_arg(args, int)); + dopr_outch (buffer, &currlen, maxlen, va_arg (args, int)); break; case 's': - strvalue = va_arg(args, char *); - if (max < 0) - max = maxlen; /* ie, no max */ - fmtstr(buffer, &currlen, maxlen, strvalue, flags, min, max); + strvalue = va_arg (args, char *); + if (!strvalue) strvalue = "(NULL)"; + if (max == -1) { + max = strlen(strvalue); + } + if (min > 0 && max >= 0 && min > max) max = min; + fmtstr (buffer, &currlen, maxlen, strvalue, flags, min, max); break; case 'p': - strvalue = va_arg(args, void *); - fmtint(buffer, &currlen, maxlen, (long) strvalue, 16, min, max, flags); + strvalue = va_arg (args, void *); + fmtint (buffer, &currlen, maxlen, (long) strvalue, 16, min, max, flags); break; case 'n': if (cflags == DP_C_SHORT) { short int *num; - num = va_arg(args, short int *); + num = va_arg (args, short int *); *num = currlen; } else if (cflags == DP_C_LONG) { long int *num; - num = va_arg(args, long int *); - *num = currlen; - } else if (cflags == DP_C_LONG_LONG) { - long long *num; - num = va_arg(args, long long *); - *num = currlen; + num = va_arg (args, long int *); + *num = (long int)currlen; + } else if (cflags == DP_C_LLONG) { + LLONG *num; + num = va_arg (args, LLONG *); + *num = (LLONG)currlen; } else { int *num; - num = va_arg(args, int *); + num = va_arg (args, int *); *num = currlen; } break; case '%': - dopr_outch(buffer, &currlen, maxlen, ch); + dopr_outch (buffer, &currlen, maxlen, ch); break; - case 'w': /* not supported yet, treat as next char */ + case 'w': + /* not supported yet, treat as next char */ ch = *format++; break; - default: /* Unknown, skip */ - break; + default: + /* Unknown, skip */ + break; } ch = *format++; state = DP_S_DEFAULT; @@ -350,24 +414,33 @@ dopr(char *buffer, size_t maxlen, const char *format, va_list args) break; case DP_S_DONE: break; - default: /* hmm? */ + default: + /* hmm? */ break; /* some picky compilers need this */ } } - if (currlen < maxlen - 1) - buffer[currlen] = '\0'; - else - buffer[maxlen - 1] = '\0'; + if (maxlen != 0) { + if (currlen < maxlen - 1) + buffer[currlen] = '\0'; + else if (maxlen > 0) + buffer[maxlen - 1] = '\0'; + } + + return currlen; } -static void -fmtstr(char *buffer, size_t *currlen, size_t maxlen, - char *value, int flags, int min, int max) +static void fmtstr(char *buffer, size_t *currlen, size_t maxlen, + char *value, int flags, int min, int max) { - int cnt = 0, padlen, strln; /* amount to pad */ - - if (value == 0) + int padlen, strln; /* amount to pad */ + int cnt = 0; + +#ifdef DEBUG_SNPRINTF + printf("fmtstr min=%d max=%d s=[%s]\n", min, max, value); +#endif + if (value == 0) { value = ""; + } for (strln = 0; strln < max && value[strln]; ++strln); /* strlen */ padlen = min - strln; @@ -375,18 +448,18 @@ fmtstr(char *buffer, size_t *currlen, size_t maxlen, padlen = 0; if (flags & DP_F_MINUS) padlen = -padlen; /* Left Justify */ - + while ((padlen > 0) && (cnt < max)) { - dopr_outch(buffer, currlen, maxlen, ' '); + dopr_outch (buffer, currlen, maxlen, ' '); --padlen; ++cnt; } while (*value && (cnt < max)) { - dopr_outch(buffer, currlen, maxlen, *value++); + dopr_outch (buffer, currlen, maxlen, *value++); ++cnt; } while ((padlen < 0) && (cnt < max)) { - dopr_outch(buffer, currlen, maxlen, ' '); + dopr_outch (buffer, currlen, maxlen, ' '); ++padlen; ++cnt; } @@ -394,49 +467,49 @@ fmtstr(char *buffer, size_t *currlen, size_t maxlen, /* Have to handle DP_F_NUM (ie 0x and 0 alternates) */ -static void -fmtint(char *buffer, size_t *currlen, size_t maxlen, - long value, int base, int min, int max, int flags) +static void fmtint(char *buffer, size_t *currlen, size_t maxlen, + long value, int base, int min, int max, int flags) { + int signvalue = 0; unsigned long uvalue; char convert[20]; - int signvalue = 0, place = 0, caps = 0; + int place = 0; int spadlen = 0; /* amount to space pad */ int zpadlen = 0; /* amount to zero pad */ - + int caps = 0; + if (max < 0) max = 0; - + uvalue = value; - - if (!(flags & DP_F_UNSIGNED)) { - if (value < 0) { + + if(!(flags & DP_F_UNSIGNED)) { + if( value < 0 ) { signvalue = '-'; uvalue = -value; - } else if (flags & DP_F_PLUS) /* Do a sign (+/i) */ - signvalue = '+'; - else if (flags & DP_F_SPACE) - signvalue = ' '; + } else { + if (flags & DP_F_PLUS) /* Do a sign (+/i) */ + signvalue = '+'; + else if (flags & DP_F_SPACE) + signvalue = ' '; + } } - if (flags & DP_F_UP) - caps = 1; /* Should characters be upper case? */ + if (flags & DP_F_UP) caps = 1; /* Should characters be upper case? */ + do { convert[place++] = - (caps ? "0123456789ABCDEF" : "0123456789abcdef") - [uvalue % (unsigned)base]; + (caps? "0123456789ABCDEF":"0123456789abcdef") + [uvalue % (unsigned)base ]; uvalue = (uvalue / (unsigned)base ); - } while (uvalue && (place < 20)); - if (place == 20) - place--; + } while(uvalue && (place < 20)); + if (place == 20) place--; convert[place] = 0; zpadlen = max - place; spadlen = min - MAX (max, place) - (signvalue ? 1 : 0); - if (zpadlen < 0) - zpadlen = 0; - if (spadlen < 0) - spadlen = 0; + if (zpadlen < 0) zpadlen = 0; + if (spadlen < 0) spadlen = 0; if (flags & DP_F_ZERO) { zpadlen = MAX(zpadlen, spadlen); spadlen = 0; @@ -444,27 +517,32 @@ fmtint(char *buffer, size_t *currlen, size_t maxlen, if (flags & DP_F_MINUS) spadlen = -spadlen; /* Left Justifty */ +#ifdef DEBUG_SNPRINTF + printf("zpad: %d, spad: %d, min: %d, max: %d, place: %d\n", + zpadlen, spadlen, min, max, place); +#endif + /* Spaces */ while (spadlen > 0) { - dopr_outch(buffer, currlen, maxlen, ' '); + dopr_outch (buffer, currlen, maxlen, ' '); --spadlen; } /* Sign */ if (signvalue) - dopr_outch(buffer, currlen, maxlen, signvalue); + dopr_outch (buffer, currlen, maxlen, signvalue); /* Zeros */ if (zpadlen > 0) { while (zpadlen > 0) { - dopr_outch(buffer, currlen, maxlen, '0'); + dopr_outch (buffer, currlen, maxlen, '0'); --zpadlen; } } /* Digits */ while (place > 0) - dopr_outch(buffer, currlen, maxlen, convert[--place]); + dopr_outch (buffer, currlen, maxlen, convert[--place]); /* Left Justified spaces */ while (spadlen < 0) { @@ -473,11 +551,20 @@ fmtint(char *buffer, size_t *currlen, size_t maxlen, } } -static long double -pow10(int exp) +static LDOUBLE abs_val(LDOUBLE value) { - long double result = 1; + LDOUBLE result = value; + + if (value < 0) + result = -value; + + return result; +} +static LDOUBLE POW10(int exp) +{ + LDOUBLE result = 1; + while (exp) { result *= 10; exp--; @@ -486,28 +573,69 @@ pow10(int exp) return result; } -static long -round(long double value) +static LLONG ROUND(LDOUBLE value) { - long intpart = value; - - value -= intpart; - if (value >= 0.5) - intpart++; + LLONG intpart; + intpart = (LLONG)value; + value = value - intpart; + if (value >= 0.5) intpart++; + return intpart; } -static void -fmtfp(char *buffer, size_t *currlen, size_t maxlen, long double fvalue, - int min, int max, int flags) +/* a replacement for modf that doesn't need the math library. Should + be portable, but slow */ +static double my_modf(double x0, double *iptr) { - char iconvert[20], fconvert[20]; - int signvalue = 0, iplace = 0, fplace = 0; + int i; + long l; + double x = x0; + double f = 1.0; + + for (i=0;i<100;i++) { + l = (long)x; + if (l <= (x+1) && l >= (x-1)) break; + x *= 0.1; + f *= 10.0; + } + + if (i == 100) { + /* yikes! the number is beyond what we can handle. What do we do? */ + (*iptr) = 0; + return 0; + } + + if (i != 0) { + double i2; + double ret; + + ret = my_modf(x0-l*f, &i2); + (*iptr) = l*f + i2; + return ret; + } + + (*iptr) = l; + return x - (*iptr); +} + + +static void fmtfp (char *buffer, size_t *currlen, size_t maxlen, + LDOUBLE fvalue, int min, int max, int flags) +{ + int signvalue = 0; + double ufvalue; + char iconvert[311]; + char fconvert[311]; + int iplace = 0; + int fplace = 0; int padlen = 0; /* amount to pad */ - int zpadlen = 0, caps = 0; - long intpart, fracpart; - long double ufvalue; + int zpadlen = 0; + int caps = 0; + int idx; + double intpart; + double fracpart; + double temp; /* * AIX manpage says the default is 0, but Solaris says the default @@ -516,137 +644,159 @@ fmtfp(char *buffer, size_t *currlen, size_t maxlen, long double fvalue, if (max < 0) max = 6; - ufvalue = abs_val(fvalue); + ufvalue = abs_val (fvalue); - if (fvalue < 0) + if (fvalue < 0) { signvalue = '-'; - else if (flags & DP_F_PLUS) /* Do a sign (+/i) */ - signvalue = '+'; - else if (flags & DP_F_SPACE) - signvalue = ' '; + } else { + if (flags & DP_F_PLUS) { /* Do a sign (+/i) */ + signvalue = '+'; + } else { + if (flags & DP_F_SPACE) + signvalue = ' '; + } + } - intpart = ufvalue; +#if 0 + if (flags & DP_F_UP) caps = 1; /* Should characters be upper case? */ +#endif + +#if 0 + if (max == 0) ufvalue += 0.5; /* if max = 0 we must round */ +#endif /* - * Sorry, we only support 9 digits past the decimal because of our + * Sorry, we only support 16 digits past the decimal because of our * conversion method */ - if (max > 9) - max = 9; + if (max > 16) + max = 16; /* We "cheat" by converting the fractional part to integer by * multiplying by a factor of 10 */ - fracpart = round((pow10 (max)) * (ufvalue - intpart)); - if (fracpart >= pow10 (max)) { + temp = ufvalue; + my_modf(temp, &intpart); + + fracpart = ROUND((POW10(max)) * (ufvalue - intpart)); + + if (fracpart >= POW10(max)) { intpart++; - fracpart -= pow10 (max); + fracpart -= POW10(max); } /* Convert integer part */ do { + temp = intpart*0.1; + my_modf(temp, &intpart); + idx = (int) ((temp -intpart +0.05)* 10.0); + /* idx = (int) (((double)(temp*0.1) -intpart +0.05) *10.0); */ + /* printf ("%llf, %f, %x\n", temp, intpart, idx); */ iconvert[iplace++] = - (caps ? "0123456789ABCDEF" : "0123456789abcdef") - [intpart % 10]; - intpart = (intpart / 10); - } while(intpart && (iplace < 20)); - if (iplace == 20) - iplace--; + (caps? "0123456789ABCDEF":"0123456789abcdef")[idx]; + } while (intpart && (iplace < 311)); + if (iplace == 311) iplace--; iconvert[iplace] = 0; /* Convert fractional part */ - do { - fconvert[fplace++] = - (caps ? "0123456789ABCDEF" : "0123456789abcdef") - [fracpart % 10]; - fracpart = (fracpart / 10); - } while(fracpart && (fplace < 20)); - if (fplace == 20) - fplace--; + if (fracpart) + { + do { + temp = fracpart*0.1; + my_modf(temp, &fracpart); + idx = (int) ((temp -fracpart +0.05)* 10.0); + /* idx = (int) ((((temp/10) -fracpart) +0.05) *10); */ + /* printf ("%lf, %lf, %ld\n", temp, fracpart, idx ); */ + fconvert[fplace++] = + (caps? "0123456789ABCDEF":"0123456789abcdef")[idx]; + } while(fracpart && (fplace < 311)); + if (fplace == 311) fplace--; + } fconvert[fplace] = 0; - + /* -1 for decimal point, another -1 if we are printing a sign */ padlen = min - iplace - max - 1 - ((signvalue) ? 1 : 0); zpadlen = max - fplace; - if (zpadlen < 0) - zpadlen = 0; + if (zpadlen < 0) zpadlen = 0; if (padlen < 0) padlen = 0; if (flags & DP_F_MINUS) padlen = -padlen; /* Left Justifty */ - + if ((flags & DP_F_ZERO) && (padlen > 0)) { if (signvalue) { - dopr_outch(buffer, currlen, maxlen, signvalue); + dopr_outch (buffer, currlen, maxlen, signvalue); --padlen; signvalue = 0; } while (padlen > 0) { - dopr_outch(buffer, currlen, maxlen, '0'); + dopr_outch (buffer, currlen, maxlen, '0'); --padlen; } } while (padlen > 0) { - dopr_outch(buffer, currlen, maxlen, ' '); + dopr_outch (buffer, currlen, maxlen, ' '); --padlen; } if (signvalue) - dopr_outch(buffer, currlen, maxlen, signvalue); - + dopr_outch (buffer, currlen, maxlen, signvalue); + while (iplace > 0) - dopr_outch(buffer, currlen, maxlen, iconvert[--iplace]); + dopr_outch (buffer, currlen, maxlen, iconvert[--iplace]); + +#ifdef DEBUG_SNPRINTF + printf("fmtfp: fplace=%d zpadlen=%d\n", fplace, zpadlen); +#endif /* - * Decimal point. This should probably use locale to find the - * correct char to print out. + * Decimal point. This should probably use locale to find the correct + * char to print out. */ - dopr_outch(buffer, currlen, maxlen, '.'); - - while (fplace > 0) - dopr_outch(buffer, currlen, maxlen, fconvert[--fplace]); + if (max > 0) { + dopr_outch (buffer, currlen, maxlen, '.'); + + while (zpadlen > 0) { + dopr_outch (buffer, currlen, maxlen, '0'); + --zpadlen; + } - while (zpadlen > 0) { - dopr_outch(buffer, currlen, maxlen, '0'); - --zpadlen; + while (fplace > 0) + dopr_outch (buffer, currlen, maxlen, fconvert[--fplace]); } while (padlen < 0) { - dopr_outch(buffer, currlen, maxlen, ' '); + dopr_outch (buffer, currlen, maxlen, ' '); ++padlen; } } -static void -dopr_outch(char *buffer, size_t *currlen, size_t maxlen, char c) +static void dopr_outch(char *buffer, size_t *currlen, size_t maxlen, char c) { - if (*currlen < maxlen) - buffer[(*currlen)++] = c; + if (*currlen < maxlen) { + buffer[(*currlen)] = c; + } + (*currlen)++; } #endif /* !defined(HAVE_SNPRINTF) || !defined(HAVE_VSNPRINTF) */ -#ifndef HAVE_VSNPRINTF -int -vsnprintf(char *str, size_t count, const char *fmt, va_list args) +#if !defined(HAVE_VSNPRINTF) +int vsnprintf (char *str, size_t count, const char *fmt, va_list args) { - str[0] = 0; - dopr(str, count, fmt, args); - - return(strlen(str)); + return dopr(str, count, fmt, args); } -#endif /* !HAVE_VSNPRINTF */ +#endif -#ifndef HAVE_SNPRINTF -int -snprintf(char *str,size_t count,const char *fmt,...) +#if !defined(HAVE_SNPRINTF) +int snprintf(char *str,size_t count,const char *fmt,...) { + size_t ret; va_list ap; va_start(ap, fmt); - (void) vsnprintf(str, count, fmt, ap); + ret = vsnprintf(str, count, fmt, ap); va_end(ap); - - return(strlen(str)); + return ret; } +#endif -#endif /* !HAVE_SNPRINTF */ diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h index dda558ffe..fe0c36dcd 100644 --- a/openbsd-compat/openbsd-compat.h +++ b/openbsd-compat/openbsd-compat.h @@ -1,4 +1,4 @@ -/* $Id: openbsd-compat.h,v 1.31 2005/09/29 23:55:50 dtucker Exp $ */ +/* $Id: openbsd-compat.h,v 1.32 2005/11/24 08:58:21 djm Exp $ */ /* * Copyright (c) 1999-2003 Damien Miller. All rights reserved. @@ -142,6 +142,10 @@ unsigned int arc4random(void); void arc4random_stir(void); #endif /* !HAVE_ARC4RANDOM */ +#ifndef HAVE_ASPRINTF +int asprintf(char **, const char *, ...); +#endif + #ifndef HAVE_OPENPTY int openpty(int *, int *, char *, struct termios *, struct winsize *); #endif /* HAVE_OPENPTY */ @@ -160,6 +164,10 @@ long long strtoll(const char *, char **, int); long long strtonum(const char *, long long, long long, const char **); #endif +#ifndef HAVE_VASPRINTF +int vasprintf(char **, const char *, va_list); +#endif + #ifndef HAVE_VSNPRINTF int vsnprintf(char *, size_t, const char *, va_list); #endif -- cgit v1.2.3 From d40c66cf3f5d7713ea9489778dc450a48984a81d Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Sat, 17 Dec 2005 22:32:03 +1100 Subject: - (dtucker) [configure.ac openbsd-compat/bsd-snprintf.c] Bug #1133: Our snprintf replacement can have a conflicting declaration in HP-UX's system headers (const vs. no const) so we now check for and work around it. Patch from the dynamic duo of David Leonard and Ted Percival. --- ChangeLog | 6 +++++- configure.ac | 16 +++++++++++++++- openbsd-compat/bsd-snprintf.c | 4 ++-- 3 files changed, 22 insertions(+), 4 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index ef4f3c398..d28bdf5d6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,10 @@ 20051217 - (dtucker) [defines.h] HP-UX system headers define "YES" and "NO" which scp.c also uses, so undef them here. + - (dtucker) [configure.ac openbsd-compat/bsd-snprintf.c] Bug #1133: Our + snprintf replacement can have a conflicting declaration in HP-UX's system + headers (const vs. no const) so we now check for and work around it. Patch + from the dynamic duo of David Leonard and Ted Percival. 20051214 - (dtucker) OpenBSD CVS Sync (regress/) @@ -3462,4 +3466,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.4029 2005/12/17 11:04:08 dtucker Exp $ +$Id: ChangeLog,v 1.4030 2005/12/17 11:32:03 dtucker Exp $ diff --git a/configure.ac b/configure.ac index 80daa0c23..df85e319f 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# $Id: configure.ac,v 1.314 2005/12/13 09:44:13 djm Exp $ +# $Id: configure.ac,v 1.315 2005/12/17 11:32:03 dtucker Exp $ # # Copyright (c) 1999-2004 Damien Miller # @@ -1343,6 +1343,20 @@ int main(void) ) fi +# On systems where [v]snprintf is broken, but is declared in stdio, +# check that the fmt argument is const char * or just char *. +# This is only useful for when BROKEN_SNPRINTF +AC_MSG_CHECKING([whether snprintf can declare const char *fmt]) +AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include + int snprintf(char *a, size_t b, const char *c, ...) { return 0; } + int main(void) { snprintf(0, 0, 0); } + ]])], + [AC_MSG_RESULT(yes) + AC_DEFINE(SNPRINTF_CONST, [const], + [Define as const if snprintf() can declare const char *fmt])], + [AC_MSG_RESULT(no) + AC_DEFINE(SNPRINTF_CONST, [/* not const */])]) + # Check for missing getpeereid (or equiv) support NO_PEERCHECK="" if test "x$ac_cv_func_getpeereid" != "xyes" ; then diff --git a/openbsd-compat/bsd-snprintf.c b/openbsd-compat/bsd-snprintf.c index ca275abdf..e4ba154fd 100644 --- a/openbsd-compat/bsd-snprintf.c +++ b/openbsd-compat/bsd-snprintf.c @@ -89,7 +89,7 @@ #include "includes.h" -RCSID("$Id: bsd-snprintf.c,v 1.10 2005/11/24 08:58:21 djm Exp $"); +RCSID("$Id: bsd-snprintf.c,v 1.11 2005/12/17 11:32:04 dtucker Exp $"); #if defined(BROKEN_SNPRINTF) /* For those with broken snprintf() */ # undef HAVE_SNPRINTF @@ -788,7 +788,7 @@ int vsnprintf (char *str, size_t count, const char *fmt, va_list args) #endif #if !defined(HAVE_SNPRINTF) -int snprintf(char *str,size_t count,const char *fmt,...) +int snprintf(char *str, size_t count, SNPRINTF_CONST char *fmt, ...) { size_t ret; va_list ap; -- cgit v1.2.3 From 129d0bb6a65dcd9639e841cc3fd2ef3490420d7b Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Mon, 19 Dec 2005 17:40:40 +1100 Subject: - (dtucker) [cipher-aes.c cipher-ctr.c cipher.c configure.ac openbsd-compat/openssl-compat.h] Check for and work around broken AES ciphers >128bit on (some) Solaris 10 systems. ok djm@ --- ChangeLog | 7 ++++++- cipher-aes.c | 12 ++++++------ cipher-ctr.c | 7 +++---- cipher.c | 4 ++-- configure.ac | 20 +++++++++++++++++++- openbsd-compat/openssl-compat.h | 8 ++++++-- 6 files changed, 42 insertions(+), 16 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index d28bdf5d6..a8074f04a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +20051219 + - (dtucker) [cipher-aes.c cipher-ctr.c cipher.c configure.ac + openbsd-compat/openssl-compat.h] Check for and work around broken AES + ciphers >128bit on (some) Solaris 10 systems. ok djm@ + 20051217 - (dtucker) [defines.h] HP-UX system headers define "YES" and "NO" which scp.c also uses, so undef them here. @@ -3466,4 +3471,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.4030 2005/12/17 11:32:03 dtucker Exp $ +$Id: ChangeLog,v 1.4031 2005/12/19 06:40:40 dtucker Exp $ diff --git a/cipher-aes.c b/cipher-aes.c index 22d500d42..228ddb104 100644 --- a/cipher-aes.c +++ b/cipher-aes.c @@ -23,7 +23,11 @@ */ #include "includes.h" -#if OPENSSL_VERSION_NUMBER < 0x00907000L + +/* compatibility with old or broken OpenSSL versions */ +#include "openbsd-compat/openssl-compat.h" + +#ifdef USE_BUILTIN_RIJNDAEL RCSID("$OpenBSD: cipher-aes.c,v 1.2 2003/11/26 21:44:29 djm Exp $"); #include @@ -31,10 +35,6 @@ RCSID("$OpenBSD: cipher-aes.c,v 1.2 2003/11/26 21:44:29 djm Exp $"); #include "xmalloc.h" #include "log.h" -#if OPENSSL_VERSION_NUMBER < 0x00906000L -#define SSH_OLD_EVP -#endif - #define RIJNDAEL_BLOCKSIZE 16 struct ssh_rijndael_ctx { @@ -157,4 +157,4 @@ evp_rijndael(void) #endif return (&rijndal_cbc); } -#endif /* OPENSSL_VERSION_NUMBER */ +#endif /* USE_BUILTIN_RIJNDAEL */ diff --git a/cipher-ctr.c b/cipher-ctr.c index 856177349..8a98f3c42 100644 --- a/cipher-ctr.c +++ b/cipher-ctr.c @@ -21,11 +21,10 @@ RCSID("$OpenBSD: cipher-ctr.c,v 1.6 2005/07/17 07:17:55 djm Exp $"); #include "log.h" #include "xmalloc.h" -#if OPENSSL_VERSION_NUMBER < 0x00906000L -#define SSH_OLD_EVP -#endif +/* compatibility with old or broken OpenSSL versions */ +#include "openbsd-compat/openssl-compat.h" -#if OPENSSL_VERSION_NUMBER < 0x00907000L +#ifdef USE_BUILTIN_RIJNDAEL #include "rijndael.h" #define AES_KEY rijndael_ctx #define AES_BLOCK_SIZE 16 diff --git a/cipher.c b/cipher.c index 0dddf270a..1434d5524 100644 --- a/cipher.c +++ b/cipher.c @@ -334,7 +334,7 @@ cipher_get_keyiv(CipherContext *cc, u_char *iv, u_int len) if ((u_int)evplen != len) fatal("%s: wrong iv length %d != %d", __func__, evplen, len); -#if OPENSSL_VERSION_NUMBER < 0x00907000L +#ifdef USE_BUILTIN_RIJNDAEL if (c->evptype == evp_rijndael) ssh_rijndael_iv(&cc->evp, 0, iv, len); else @@ -365,7 +365,7 @@ cipher_set_keyiv(CipherContext *cc, u_char *iv) evplen = EVP_CIPHER_CTX_iv_length(&cc->evp); if (evplen == 0) return; -#if OPENSSL_VERSION_NUMBER < 0x00907000L +#ifdef USE_BUILTIN_RIJNDAEL if (c->evptype == evp_rijndael) ssh_rijndael_iv(&cc->evp, 1, iv, evplen); else diff --git a/configure.ac b/configure.ac index df85e319f..9325c4364 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# $Id: configure.ac,v 1.315 2005/12/17 11:32:03 dtucker Exp $ +# $Id: configure.ac,v 1.316 2005/12/19 06:40:40 dtucker Exp $ # # Copyright (c) 1999-2004 Damien Miller # @@ -1803,6 +1803,24 @@ Also see contrib/findssl.sh for help identifying header/library mismatches.]) ] ) +# Check for OpenSSL without EVP_aes_{192,256}_cbc +AC_MSG_CHECKING([whether OpenSSL has crippled AES support]) +AC_COMPILE_IFELSE( + [AC_LANG_SOURCE([[ +#include +#include +int main(void) { exit(EVP_aes_192_cbc() == NULL || EVP_aes_256_cbc() == NULL)} + ]])], + [ + AC_MSG_RESULT(no) + ], + [ + AC_MSG_RESULT(yes) + AC_DEFINE(OPENSSL_LOBOTOMISED_AES, 1, + [libcrypto is missing AES 192 and 256 bit functions]) + ] +) + # Some systems want crypt() from libcrypt, *not* the version in OpenSSL, # because the system crypt() is more featureful. if test "x$check_for_libcrypt_before" = "x1"; then diff --git a/openbsd-compat/openssl-compat.h b/openbsd-compat/openssl-compat.h index 4988485f1..8a015ec43 100644 --- a/openbsd-compat/openssl-compat.h +++ b/openbsd-compat/openssl-compat.h @@ -1,4 +1,4 @@ -/* $Id: openssl-compat.h,v 1.2 2005/11/20 03:10:00 dtucker Exp $ */ +/* $Id: openssl-compat.h,v 1.3 2005/12/19 06:40:40 dtucker Exp $ */ /* * Copyright (c) 2005 Darren Tucker @@ -24,7 +24,11 @@ # define EVP_CIPHER_CTX_get_app_data(e) ((e)->app_data) #endif -#if OPENSSL_VERSION_NUMBER < 0x00907000L +#if (OPENSSL_VERSION_NUMBER < 0x00907000L) || defined(OPENSSL_LOBOTOMISED_AES) +# define USE_BUILTIN_RIJNDAEL +#endif + +#ifdef USE_BUILTIN_RIJNDAEL # define EVP_aes_128_cbc evp_rijndael # define EVP_aes_192_cbc evp_rijndael # define EVP_aes_256_cbc evp_rijndael -- cgit v1.2.3 From 598bbc2d8fd5025ad16f5d9ee71db4e0bf872cd2 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 31 Dec 2005 16:33:36 +1100 Subject: - (djm) [openbsd-compat/port-tun.c openbsd-compat/port-tun.h configure.ac] [serverloop.c ssh.c openbsd-compat/Makefile.in] [openbsd-compat/openbsd-compat.h] Implement tun(4) forwarding compatability support for Linux, diff from reyk@ --- ChangeLog | 6 +- configure.ac | 5 +- openbsd-compat/Makefile.in | 4 +- openbsd-compat/openbsd-compat.h | 3 +- openbsd-compat/port-tun.c | 155 ++++++++++++++++++++++++++++++++++++++++ openbsd-compat/port-tun.h | 33 +++++++++ serverloop.c | 5 ++ ssh.c | 5 ++ 8 files changed, 211 insertions(+), 5 deletions(-) create mode 100644 openbsd-compat/port-tun.c create mode 100644 openbsd-compat/port-tun.h (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index 94e3f6e5a..ad7cd52fa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -16,6 +16,10 @@ - stevesk@cvs.openbsd.org 2005/12/31 01:38:45 [ssh.1] document -MM; ok djm@ + - (djm) [openbsd-compat/port-tun.c openbsd-compat/port-tun.h configure.ac] + [serverloop.c ssh.c openbsd-compat/Makefile.in] + [openbsd-compat/openbsd-compat.h] Implement tun(4) forwarding + compatability support for Linux, diff from reyk@ 20051229 - (tim) [buildpkg.sh.in] grep for $SSHDUID instead of $SSHDGID on /etc/passwd @@ -3571,4 +3575,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.4056 2005/12/31 05:23:15 djm Exp $ +$Id: ChangeLog,v 1.4057 2005/12/31 05:33:36 djm Exp $ diff --git a/configure.ac b/configure.ac index 9325c4364..64046759f 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# $Id: configure.ac,v 1.316 2005/12/19 06:40:40 dtucker Exp $ +# $Id: configure.ac,v 1.317 2005/12/31 05:33:37 djm Exp $ # # Copyright (c) 1999-2004 Damien Miller # @@ -326,6 +326,9 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) [Define if cmsg_type is not passed correctly]) ;; esac + AC_DEFINE(SSH_TUN_LINUX, 1, [Open tunnel devices the Linux tun/tap way]) + AC_DEFINE(SSH_TUN_COMPAT_AF, 1, [Use tunnel device compatibility to OpenBSD]) + AC_DEFINE(SSH_TUN_PREPEND_AF, 1, [Prepend the address family to IP tunnel traffic]) ;; mips-sony-bsd|mips-sony-newsos4) AC_DEFINE(NEED_SETPRGP, 1, [Need setpgrp to acquire controlling tty]) diff --git a/openbsd-compat/Makefile.in b/openbsd-compat/Makefile.in index 89ac6cdaf..3a8703bc1 100644 --- a/openbsd-compat/Makefile.in +++ b/openbsd-compat/Makefile.in @@ -1,4 +1,4 @@ -# $Id: Makefile.in,v 1.36 2005/11/24 08:58:21 djm Exp $ +# $Id: Makefile.in,v 1.37 2005/12/31 05:33:37 djm Exp $ sysconfdir=@sysconfdir@ piddir=@piddir@ @@ -20,7 +20,7 @@ OPENBSD=base64.o basename.o bindresvport.o daemon.o dirname.o getcwd.o getgroupl COMPAT=bsd-arc4random.o bsd-asprintf.o bsd-closefrom.o bsd-cray.o bsd-cygwin_util.o bsd-getpeereid.o bsd-misc.o bsd-nextstep.o bsd-openpty.o bsd-snprintf.o bsd-waitpid.o fake-rfc2553.o openssl-compat.o xmmap.o xcrypt.o -PORTS=port-irix.o port-aix.o port-uw.o +PORTS=port-irix.o port-aix.o port-uw.o port-tun.o .c.o: $(CC) $(CFLAGS) $(CPPFLAGS) -c $< diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h index fe0c36dcd..1a3027353 100644 --- a/openbsd-compat/openbsd-compat.h +++ b/openbsd-compat/openbsd-compat.h @@ -1,4 +1,4 @@ -/* $Id: openbsd-compat.h,v 1.32 2005/11/24 08:58:21 djm Exp $ */ +/* $Id: openbsd-compat.h,v 1.33 2005/12/31 05:33:37 djm Exp $ */ /* * Copyright (c) 1999-2003 Damien Miller. All rights reserved. @@ -186,5 +186,6 @@ char *shadow_pw(struct passwd *pw); #include "port-irix.h" #include "port-aix.h" #include "port-uw.h" +#include "port-tun.h" #endif /* _OPENBSD_COMPAT_H */ diff --git a/openbsd-compat/port-tun.c b/openbsd-compat/port-tun.c new file mode 100644 index 000000000..479b46b7a --- /dev/null +++ b/openbsd-compat/port-tun.c @@ -0,0 +1,155 @@ +/* + * Copyright (c) 2005 Reyk Floeter + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "includes.h" + +#include "log.h" +#include "misc.h" +#include "bufaux.h" + +/* + * This is the portable version of the SSH tunnel forwarding, it + * uses some preprocessor definitions for various platform-specific + * settings. + * + * SSH_TUN_LINUX Use the (newer) Linux tun/tap device + * SSH_TUN_COMPAT_AF Translate the OpenBSD address family + * SSH_TUN_PREPEND_AF Prepend/remove the address family + */ + +/* + * System-specific tunnel open function + */ + +#if defined(SSH_TUN_LINUX) +#include + +int +sys_tun_open(int tun, int mode) +{ + struct ifreq ifr; + int fd = -1; + const char *name = NULL; + + if ((fd = open("/dev/net/tun", O_RDWR)) == -1) { + debug("%s: failed to open tunnel control interface: %s", + __func__, strerror(errno)); + return (-1); + } + + bzero(&ifr, sizeof(ifr)); + + if (mode == SSH_TUNMODE_ETHERNET) { + ifr.ifr_flags = IFF_TAP; + name = "tap%d"; + } else { + ifr.ifr_flags = IFF_TUN; + name = "tun%d"; + } + ifr.ifr_flags |= IFF_NO_PI; + + if (tun != SSH_TUNID_ANY) { + if (tun > SSH_TUNID_MAX) { + debug("%s: invalid tunnel id %x: %s", __func__, + tun, strerror(errno)); + goto failed; + } + snprintf(ifr.ifr_name, sizeof(ifr.ifr_name), name, tun); + } + + if (ioctl(fd, TUNSETIFF, &ifr) == -1) { + debug("%s: failed to configure tunnel (mode %d): %s", __func__, + mode, strerror(errno)); + goto failed; + } + + if (tun == SSH_TUNID_ANY) + debug("%s: tunnel mode %d fd %d", __func__, mode, fd); + else + debug("%s: %s mode %d fd %d", __func__, ifr.ifr_name, mode, fd); + + return (fd); + + failed: + close(fd); + return (-1); +} +#endif /* SSH_TUN_LINUX */ + +/* + * System-specific channel filters + */ + +#if defined(SSH_TUN_FILTER) +#define OPENBSD_AF_INET 2 +#define OPENBSD_AF_INET6 24 + +int +sys_tun_infilter(struct Channel *c, char *buf, int len) +{ +#if defined(SSH_TUN_PREPEND_AF) + char rbuf[CHAN_RBUF]; +#endif + u_int32_t *af; + char *ptr = buf; + +#if defined(SSH_TUN_PREPEND_AF) + if (len > (int)(sizeof(rbuf) - sizeof(*af))) + return (-1); + ptr = (char *)&rbuf[0]; + bcopy(buf, ptr + sizeof(u_int32_t), len); + len += sizeof(u_int32_t); +#endif + +#if defined(SSH_TUN_COMPAT_AF) + if (len < (int)sizeof(u_int32_t)) + return (-1); + + af = (u_int32_t *)ptr; + if (*af == htonl(AF_INET6)) + *af = htonl(OPENBSD_AF_INET6); + else + *af = htonl(OPENBSD_AF_INET); +#endif + buffer_put_string(&c->input, ptr, len); + return (0); +} + +u_char * +sys_tun_outfilter(struct Channel *c, u_char **data, u_int *dlen) +{ + u_char *buf; + u_int32_t *af; + + *data = buffer_get_string(&c->output, dlen); + if (*dlen < sizeof(*af)) + return (NULL); + buf = *data; + +#if defined(SSH_TUN_PREPEND_AF) + *dlen -= sizeof(u_int32_t); + buf = *data + sizeof(u_int32_t); +#elif defined(SSH_TUN_COMPAT_AF) + af = ntohl(*(u_int32_t *)buf); + if (*af == OPENBSD_AF_INET6) + *af = htonl(AF_INET6); + else + *af = htonl(AF_INET); +#endif + + return (buf); +} +#endif /* SSH_TUN_FILTER */ diff --git a/openbsd-compat/port-tun.h b/openbsd-compat/port-tun.h new file mode 100644 index 000000000..942610c6d --- /dev/null +++ b/openbsd-compat/port-tun.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2005 Reyk Floeter + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#ifndef _PORT_TUN_H +#define _PORT_TUN_H + +#include "channels.h" + +#if defined(SSH_TUN_LINUX) +# define CUSTOM_SYS_TUN_OPEN +int sys_tun_open(int, int); +#endif + +#if defined(SSH_TUN_COMPAT_AF) || defined(SSH_TUN_PREPEND_AF) +# define SSH_TUN_FILTER +int sys_tun_infilter(struct Channel *, char *, int); +u_char *sys_tun_outfilter(struct Channel *, u_char **, u_int *); +#endif + +#endif diff --git a/serverloop.c b/serverloop.c index a575ce0d1..3d8e7cfb5 100644 --- a/serverloop.c +++ b/serverloop.c @@ -947,6 +947,11 @@ server_request_tun(void) c = channel_new("tun", SSH_CHANNEL_OPEN, sock, sock, -1, CHAN_TCP_WINDOW_DEFAULT, CHAN_TCP_PACKET_DEFAULT, 0, "tun", 1); c->datagram = 1; +#if defined(SSH_TUN_FILTER) + if (mode == SSH_TUNMODE_POINTOPOINT) + channel_register_filter(c->self, sys_tun_infilter, + sys_tun_outfilter); +#endif done: if (c == NULL) diff --git a/ssh.c b/ssh.c index cdfc91633..3940dabfd 100644 --- a/ssh.c +++ b/ssh.c @@ -1079,6 +1079,11 @@ ssh_session2_setup(int id, void *arg) CHAN_TCP_WINDOW_DEFAULT, CHAN_TCP_PACKET_DEFAULT, 0, "tun", 1); c->datagram = 1; +#if defined(SSH_TUN_FILTER) + if (options.tun_open == SSH_TUNMODE_POINTOPOINT) + channel_register_filter(c->self, sys_tun_infilter, + sys_tun_outfilter); +#endif packet_start(SSH2_MSG_CHANNEL_OPEN); packet_put_cstring("tun@openssh.com"); packet_put_int(c->self); -- cgit v1.2.3 From 2dcddbfaf6b68bd58b5b1422ebeef7767c0c2633 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sun, 1 Jan 2006 19:47:05 +1100 Subject: - (djm) [Makefile.in configure.ac includes.h misc.c] [openbsd-compat/port-tun.c openbsd-compat/port-tun.h] Add support for tunnel forwarding for FreeBSD and NetBSD. NetBSD's support is limited to IPv4 tunnels only, and most versions don't support the tap(4) device at all. --- ChangeLog | 9 ++++- Makefile.in | 4 +- configure.ac | 12 +++++- includes.h | 3 -- misc.c | 2 +- openbsd-compat/port-tun.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++- openbsd-compat/port-tun.h | 2 +- 7 files changed, 119 insertions(+), 11 deletions(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index c8a23a2fe..de0835431 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +20060101 + - (djm) [Makefile.in configure.ac includes.h misc.c] + [openbsd-compat/port-tun.c openbsd-compat/port-tun.h] Add support + for tunnel forwarding for FreeBSD and NetBSD. NetBSD's support is + limited to IPv4 tunnels only, and most versions don't support the + tap(4) device at all. + 20051229 - (djm) OpenBSD CVS Sync - stevesk@cvs.openbsd.org 2005/12/28 22:46:06 @@ -3578,4 +3585,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.4059 2005/12/31 06:05:58 djm Exp $ +$Id: ChangeLog,v 1.4060 2006/01/01 08:47:05 djm Exp $ diff --git a/Makefile.in b/Makefile.in index fcbc522f2..af881c521 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,4 +1,4 @@ -# $Id: Makefile.in,v 1.273 2005/05/29 07:22:29 dtucker Exp $ +# $Id: Makefile.in,v 1.274 2006/01/01 08:47:05 djm Exp $ # uncomment if you run a non bourne compatable shell. Ie. csh #SHELL = @SH@ @@ -139,7 +139,7 @@ sshd$(EXEEXT): libssh.a $(LIBCOMPAT) $(SSHDOBJS) $(LD) -o $@ $(SSHDOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBWRAP) $(LIBPAM) $(LIBS) scp$(EXEEXT): $(LIBCOMPAT) libssh.a scp.o progressmeter.o - $(LD) -o $@ scp.o progressmeter.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) + $(LD) -o $@ scp.o progressmeter.o bufaux.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) ssh-add$(EXEEXT): $(LIBCOMPAT) libssh.a ssh-add.o $(LD) -o $@ ssh-add.o $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) diff --git a/configure.ac b/configure.ac index 26ed218d5..2f5906667 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# $Id: configure.ac,v 1.319 2005/12/31 06:05:58 djm Exp $ +# $Id: configure.ac,v 1.320 2006/01/01 08:47:05 djm Exp $ # # Copyright (c) 1999-2004 Damien Miller # @@ -346,10 +346,18 @@ mips-sony-bsd|mips-sony-newsos4) if test "x$withval" != "xno" ; then need_dash_r=1 fi + AC_DEFINE(SSH_TUN_FREEBSD, 1, [Open tunnel devices the FreeBSD way]) + AC_CHECK_HEADER([net/if_tap.h], , + AC_DEFINE(SSH_TUN_NO_L2, 1, [No layer 2 tunnel support])) + AC_DEFINE(SSH_TUN_PREPEND_AF, 1, + [Prepend the address family to IP tunnel traffic]) ;; *-*-freebsd*) check_for_libcrypt_later=1 AC_DEFINE(LOCKED_PASSWD_PREFIX, "*LOCKED*", [Account locked with pw(1)]) + AC_DEFINE(SSH_TUN_FREEBSD, 1, [Open tunnel devices the FreeBSD way]) + AC_CHECK_HEADER([net/if_tap.h], , + AC_DEFINE(SSH_TUN_NO_L2, 1, [No layer 2 tunnel support])) ;; *-*-bsdi*) AC_DEFINE(SETEUID_BREAKS_SETUID) @@ -369,7 +377,7 @@ mips-sony-bsd|mips-sony-newsos4) *-*-openbsd*) AC_DEFINE(HAVE_ATTRIBUTE__SENTINEL__, 1, [OpenBSD's gcc has sentinel]) AC_DEFINE(HAVE_ATTRIBUTE__BOUNDED__, 1, [OpenBSD's gcc has bounded]) - AC_DEFINE(SSH_TUN_BSD, 1, [Open tunnel devices the BSD way]) + AC_DEFINE(SSH_TUN_OPENBSD, 1, [Open tunnel devices the OpenBSD way]) ;; *-*-solaris*) if test "x$withval" != "xno" ; then diff --git a/includes.h b/includes.h index cf2d6c699..808d5dc9a 100644 --- a/includes.h +++ b/includes.h @@ -148,9 +148,6 @@ static /**/const char *const rcsid[] = { (const char *)rcsid, "\100(#)" msg } #include /* For IPv6 macros */ #include /* For IPTOS macros */ #include -#ifdef HAVE_NET_IF_H -# include -#endif #include #if defined(HAVE_NETDB_H) # include diff --git a/misc.c b/misc.c index 4141e6c48..76dbf40ea 100644 --- a/misc.c +++ b/misc.c @@ -543,7 +543,7 @@ tun_open(int tun, int mode) { #if defined(CUSTOM_SYS_TUN_OPEN) return (sys_tun_open(tun, mode)); -#elif defined(SSH_TUN_BSD) +#elif defined(SSH_TUN_OPENBSD) struct ifreq ifr; char name[100]; int fd = -1, sock; diff --git a/openbsd-compat/port-tun.c b/openbsd-compat/port-tun.c index 479b46b7a..00a0442b1 100644 --- a/openbsd-compat/port-tun.c +++ b/openbsd-compat/port-tun.c @@ -89,6 +89,88 @@ sys_tun_open(int tun, int mode) } #endif /* SSH_TUN_LINUX */ +#ifdef SSH_TUN_FREEBSD +#include +#include +#include + +int +sys_tun_open(int tun, int mode) +{ + struct ifreq ifr; + char name[100]; + int fd = -1, sock, flag; + const char *tunbase = "tun"; + + if (mode == SSH_TUNMODE_ETHERNET) { +#ifdef SSH_TUN_NO_L2 + debug("%s: no layer 2 tunnelling support", __func__); + return (-1); +#else + tunbase = "tap"; +#endif + } + + /* Open the tunnel device */ + if (tun <= SSH_TUNID_MAX) { + snprintf(name, sizeof(name), "/dev/%s%d", tunbase, tun); + fd = open(name, O_RDWR); + } else if (tun == SSH_TUNID_ANY) { + for (tun = 100; tun >= 0; tun--) { + snprintf(name, sizeof(name), "/dev/%s%d", + tunbase, tun); + if ((fd = open(name, O_RDWR)) >= 0) + break; + } + } else { + debug("%s: invalid tunnel %u\n", __func__, tun); + return (-1); + } + + if (fd < 0) { + debug("%s: %s open failed: %s", __func__, name, + strerror(errno)); + return (-1); + } + + /* Turn on tunnel headers */ + flag = 1; +#if defined(TUNSIFHEAD) && !defined(SSH_TUN_PREPEND_AF) + if (mode != SSH_TUNMODE_ETHERNET && + ioctl(fd, TUNSIFHEAD, &flag) == -1) { + debug("%s: ioctl(%d, TUNSIFHEAD, 1): %s", __func__, fd, + strerror(errno)); + close(fd); + } +#endif + + debug("%s: %s mode %d fd %d", __func__, name, mode, fd); + + /* Set the tunnel device operation mode */ + snprintf(ifr.ifr_name, sizeof(ifr.ifr_name), "%s%d", tunbase, tun); + if ((sock = socket(PF_UNIX, SOCK_STREAM, 0)) == -1) + goto failed; + + if (ioctl(sock, SIOCGIFFLAGS, &ifr) == -1) + goto failed; + ifr.ifr_flags |= IFF_UP; + if (ioctl(sock, SIOCSIFFLAGS, &ifr) == -1) + goto failed; + + close(sock); + return (fd); + + failed: + if (fd >= 0) + close(fd); + if (sock >= 0) + close(sock); + debug("%s: failed to set %s mode %d: %s", __func__, name, + mode, strerror(errno)); + return (-1); +} +#endif /* SSH_TUN_FREEBSD */ + /* * System-specific channel filters */ @@ -102,16 +184,29 @@ sys_tun_infilter(struct Channel *c, char *buf, int len) { #if defined(SSH_TUN_PREPEND_AF) char rbuf[CHAN_RBUF]; + struct ip *iph; #endif u_int32_t *af; char *ptr = buf; #if defined(SSH_TUN_PREPEND_AF) - if (len > (int)(sizeof(rbuf) - sizeof(*af))) + if (len <= 0 || len > (int)(sizeof(rbuf) - sizeof(*af))) return (-1); ptr = (char *)&rbuf[0]; bcopy(buf, ptr + sizeof(u_int32_t), len); len += sizeof(u_int32_t); + af = (u_int32_t *)ptr; + + iph = (struct ip *)(ptr + sizeof(u_int32_t)); + switch (iph->ip_v) { + case 6: + *af = AF_INET6; + break; + case 4: + default: + *af = AF_INET; + break; + } #endif #if defined(SSH_TUN_COMPAT_AF) @@ -124,6 +219,7 @@ sys_tun_infilter(struct Channel *c, char *buf, int len) else *af = htonl(OPENBSD_AF_INET); #endif + buffer_put_string(&c->input, ptr, len); return (0); } diff --git a/openbsd-compat/port-tun.h b/openbsd-compat/port-tun.h index 942610c6d..86d9272b4 100644 --- a/openbsd-compat/port-tun.h +++ b/openbsd-compat/port-tun.h @@ -19,7 +19,7 @@ #include "channels.h" -#if defined(SSH_TUN_LINUX) +#if defined(SSH_TUN_LINUX) || defined(SSH_TUN_FREEBSD) # define CUSTOM_SYS_TUN_OPEN int sys_tun_open(int, int); #endif -- cgit v1.2.3 From 5df52e89b4d83f4f56eba73f5d37ed5a6fc64c08 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sun, 1 Jan 2006 21:15:50 +1100 Subject: - (djm) [openbsd-compat/port-tun.c] Linux needs linux/if.h too --- ChangeLog | 3 ++- openbsd-compat/port-tun.c | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'openbsd-compat') diff --git a/ChangeLog b/ChangeLog index c38fd0ec9..161143539 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,7 @@ limited to IPv4 tunnels only, and most versions don't support the tap(4) device at all. - (djm) [configure.ac] Fix linux/if_tun.h test + - (djm) [openbsd-compat/port-tun.c] Linux needs linux/if.h too 20051229 - (djm) OpenBSD CVS Sync @@ -3586,4 +3587,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.4061 2006/01/01 10:03:30 djm Exp $ +$Id: ChangeLog,v 1.4062 2006/01/01 10:15:50 djm Exp $ diff --git a/openbsd-compat/port-tun.c b/openbsd-compat/port-tun.c index 00a0442b1..31921615f 100644 --- a/openbsd-compat/port-tun.c +++ b/openbsd-compat/port-tun.c @@ -35,6 +35,7 @@ */ #if defined(SSH_TUN_LINUX) +#include #include int -- cgit v1.2.3