diff --git a/common/include/minix/devman.h b/common/include/minix/devman.h index 48ccb7f59..9bf1a8c94 100644 --- a/common/include/minix/devman.h +++ b/common/include/minix/devman.h @@ -64,8 +64,8 @@ _PROTOTYPE( int devman_usb_device_add, (struct devman_usb_dev *dev)); _PROTOTYPE( int devman_usb_device_remove, (struct devman_usb_dev *dev)); _PROTOTYPE( void devman_usb_device_delete, (struct devman_usb_dev *udev)); _PROTOTYPE( int devman_handle_msg, (message *m)); -_PROTOTYPE( int devman_usb_init,(devman_usb_bind_cb_t bind_cb, - devman_usb_bind_cb_t unbind_cb)); +_PROTOTYPE( void devman_usb_init, (devman_usb_bind_cb_t bind_cb, + devman_usb_bind_cb_t unbind_cb) ); #endif diff --git a/include/ctype.h b/include/ctype.h index 1b40173c1..7ec581ca7 100644 --- a/include/ctype.h +++ b/include/ctype.h @@ -7,9 +7,7 @@ #ifndef _CTYPE_H #define _CTYPE_H -#ifndef _MINIX_ANSI_H #include -#endif extern char __ctype[]; /* property array defined in chartab.c */ @@ -39,13 +37,13 @@ _PROTOTYPE( int toupper, (int _c) ); /* convert to upper-case */ _PROTOTYPE( int toascii, (int _c) ); /* convert to 7-bit ASCII */ /* Macros for identifying character classes. */ -#define isalnum(c) ((__ctype+1)[c]&(_U|_L|_N)) -#define isalpha(c) ((__ctype+1)[c]&(_U|_L)) -#define iscntrl(c) ((__ctype+1)[c]&_C) -#define isgraph(c) ((__ctype+1)[c]&(_P|_U|_L|_N)) -#define ispunct(c) ((__ctype+1)[c]&_P) -#define isspace(c) ((__ctype+1)[c]&_S) -#define isxdigit(c) ((__ctype+1)[c]&(_N|_X)) +#define isalnum(c) ((__ctype+1)[(unsigned char)(c)]&(_U|_L|_N)) +#define isalpha(c) ((__ctype+1)[(unsigned char)(c)]&(_U|_L)) +#define iscntrl(c) ((__ctype+1)[(unsigned char)(c)]&_C) +#define isgraph(c) ((__ctype+1)[(unsigned char)(c)]&(_P|_U|_L|_N)) +#define ispunct(c) ((__ctype+1)[(unsigned char)(c)]&_P) +#define isspace(c) ((__ctype+1)[(unsigned char)(c)]&_S) +#define isxdigit(c) ((__ctype+1)[(unsigned char)(c)]&(_N|_X)) #define isdigit(c) ((unsigned) ((c)-'0') < 10) #define islower(c) ((unsigned) ((c)-'a') < 26) diff --git a/lib/libarchive/archive_entry_link_resolver.c b/lib/libarchive/archive_entry_link_resolver.c index 5ab348c6c..808d0a6bf 100644 --- a/lib/libarchive/archive_entry_link_resolver.c +++ b/lib/libarchive/archive_entry_link_resolver.c @@ -169,7 +169,9 @@ archive_entry_linkify(struct archive_entry_linkresolver *res, struct archive_entry **e, struct archive_entry **f) { struct links_entry *le; +#ifndef __minix struct archive_entry *t; +#endif *f = NULL; /* Default: Don't return a second entry. */ diff --git a/lib/libarchive/archive_read_support_format_tar.c b/lib/libarchive/archive_read_support_format_tar.c index 0469b75ea..f93c164f4 100644 --- a/lib/libarchive/archive_read_support_format_tar.c +++ b/lib/libarchive/archive_read_support_format_tar.c @@ -168,10 +168,10 @@ struct tar { int64_t entry_padding; int64_t realsize; #else - size_t entry_bytes_remaining; + int32_t entry_bytes_remaining; off_t entry_offset; off_t entry_padding; - size_t realsize; + int32_t realsize; #endif struct sparse_block *sparse_list; struct sparse_block *sparse_last; @@ -538,7 +538,7 @@ archive_read_format_tar_skip(struct archive_read *a) #ifndef __minix int64_t bytes_skipped; #else - size_t bytes_skipped; + int32_t bytes_skipped; #endif struct tar* tar; diff --git a/lib/libc/ansi/malloc-debug.c b/lib/libc/ansi/malloc-debug.c index c14717809..2f2b918ea 100644 --- a/lib/libc/ansi/malloc-debug.c +++ b/lib/libc/ansi/malloc-debug.c @@ -9,6 +9,7 @@ #include #include #include +#include #define mmap minix_mmap #define munmap minix_munmap diff --git a/lib/libc/asyn/asyn_write.c b/lib/libc/asyn/asyn_write.c index 1c3afdd78..7e9878aff 100644 --- a/lib/libc/asyn/asyn_write.c +++ b/lib/libc/asyn/asyn_write.c @@ -8,7 +8,6 @@ ssize_t asyn_write(asynchio_t *asyn, int fd, const void *buf, size_t len) /* Nonblocking write(). (See asyn_read()). */ { asynfd_t *afd; - ssize_t result; asyn->asyn_more++; diff --git a/lib/libc/ip/bind.c b/lib/libc/ip/bind.c index 72393526f..b73828e1d 100644 --- a/lib/libc/ip/bind.c +++ b/lib/libc/ip/bind.c @@ -173,37 +173,6 @@ static int _udp_bind(int socket, const struct sockaddr *address, return r; } -static int in_group(uid_t uid, gid_t gid) -{ - int r, i; - int size; - gid_t *list; - - size = sysconf(_SC_NGROUPS_MAX); - list = malloc(size * sizeof(gid_t)); - - if (list == NULL) { - return 0; - } - - r= getgroups(size, list); - if (r == -1) { - free(list); - return 0; - } - - for (i = 0; i < r; i++) { - if (gid == list[i]) { - free(list); - return 1; - } - } - - free(list); - return 0; -} - - static int _uds_bind(int socket, const struct sockaddr *address, socklen_t address_len, struct sockaddr_un *uds_addr) { diff --git a/lib/libdevman/generic.c b/lib/libdevman/generic.c index 481ef9fba..93b5a2ed0 100644 --- a/lib/libdevman/generic.c +++ b/lib/libdevman/generic.c @@ -7,6 +7,8 @@ #include #include #include +#include +#include #include "local.h" @@ -192,7 +194,6 @@ PUBLIC endpoint_t devman_get_ep() PUBLIC int devman_init() { int res; - message msg; /* get the endpoint of the HCD */ res = ds_retrieve_label_endpt("devman", &devman_ep); diff --git a/lib/libdevman/usb.c b/lib/libdevman/usb.c index c0f9a888c..001f91393 100644 --- a/lib/libdevman/usb.c +++ b/lib/libdevman/usb.c @@ -6,6 +6,7 @@ #include #include #include +#include #include "local.h" @@ -291,7 +292,7 @@ PUBLIC int devman_usb_device_remove(struct devman_usb_dev *dev) /**************************************************************************** * devman_usb_init * ***************************************************************************/ -PUBLIC int devman_usb_init +PUBLIC void devman_usb_init (int (*_bind_cb) (struct devman_usb_bind_cb_data *data, endpoint_t ep), int (*_unbind_cb) (struct devman_usb_bind_cb_data *data, endpoint_t ep)) { diff --git a/lib/libfetch/ftp.c b/lib/libfetch/ftp.c index 3f181d627..d3903b4fa 100644 --- a/lib/libfetch/ftp.c +++ b/lib/libfetch/ftp.c @@ -903,8 +903,8 @@ retry_mode: int arg; #endif int d; - char *ap; #ifdef INET6 + char *ap; char hname[INET6_ADDRSTRLEN]; #endif diff --git a/lib/libminc/fputs.c b/lib/libminc/fputs.c index b9a66bce2..868bbe1d0 100644 --- a/lib/libminc/fputs.c +++ b/lib/libminc/fputs.c @@ -11,5 +11,5 @@ int fputs(const char *s, FILE *fp) { assert(fp == stdout || fp == stderr); - puts(s); + return puts(s); } diff --git a/lib/libminc/malloc.c b/lib/libminc/malloc.c index fc8028299..2ea43adec 100644 --- a/lib/libminc/malloc.c +++ b/lib/libminc/malloc.c @@ -14,7 +14,6 @@ #include #include -static int no_debug = -1; #define CHECK_DBG(statement) #if _EM_WSIZE == _EM_PSIZE diff --git a/lib/libminixfs/cache.c b/lib/libminixfs/cache.c index bf43750c0..4df1de7bb 100644 --- a/lib/libminixfs/cache.c +++ b/lib/libminixfs/cache.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include diff --git a/lib/libminixfs/fetch_credentials.c b/lib/libminixfs/fetch_credentials.c index 26f62d2f9..a1247c78c 100644 --- a/lib/libminixfs/fetch_credentials.c +++ b/lib/libminixfs/fetch_credentials.c @@ -1,7 +1,9 @@ #include #include +#include #include +#include #include "minixfs.h" diff --git a/lib/libsys/get_randomness.c b/lib/libsys/get_randomness.c index 5313c4e7b..421618570 100644 --- a/lib/libsys/get_randomness.c +++ b/lib/libsys/get_randomness.c @@ -23,7 +23,7 @@ int source; source %= RANDOM_SOURCES; r_next= rand->bin[source].r_next; - read_tsc(&tsc_high, &tsc_low); + read_tsc((u32_t *) &tsc_high, (u32_t *) &tsc_low); rand->bin[source].r_buf[r_next] = tsc_low; if (rand->bin[source].r_size < RANDOM_ELEMENTS) { rand->bin[source].r_size ++; diff --git a/lib/libsys/timers.c b/lib/libsys/timers.c index 726583c28..06cfffdf3 100644 --- a/lib/libsys/timers.c +++ b/lib/libsys/timers.c @@ -13,6 +13,7 @@ #include "syslib.h" #include +#include PRIVATE timer_t *timers = NULL; PRIVATE int expiring = 0; diff --git a/lib/libsys/timing.c b/lib/libsys/timing.c index 12b39ba57..51acc7b08 100644 --- a/lib/libsys/timing.c +++ b/lib/libsys/timing.c @@ -26,8 +26,8 @@ void util_timer_start(util_timingdata_t *timingdata, char *name) return; } - read_tsc(&timingdata->starttimes[HIGHCOUNT], - &timingdata->starttimes[LOWCOUNT]); + read_tsc((u32_t *) &timingdata->starttimes[HIGHCOUNT], + (u32_t *) &timingdata->starttimes[LOWCOUNT]); } void util_timer_end(util_timingdata_t *timingdata) @@ -35,7 +35,7 @@ void util_timer_end(util_timingdata_t *timingdata) unsigned long h, l, d = 0; int bin; - read_tsc(&h, &l); + read_tsc((u32_t *) &h, (u32_t *) &l); if (!timingdata->starttimes[HIGHCOUNT]) { panic("timer stopped but not started"); return; diff --git a/lib/libsys/vprintf.c b/lib/libsys/vprintf.c index 2da039229..b6120d052 100644 --- a/lib/libsys/vprintf.c +++ b/lib/libsys/vprintf.c @@ -3,6 +3,7 @@ #include #include #include +#include /* vprintf() uses kputc() to print characters. */ void kputc(int c); @@ -210,12 +211,12 @@ __xfputc(int c, void *arg) int _vprintf(const char *fmt, va_list argp) { - __fvprintf(__xfputc, fmt, argp, stdout); + return __fvprintf(__xfputc, fmt, argp, stdout); } int _vfprintf(FILE *fp, const char *fmt, va_list argp) { - __fvprintf(__xfputc, fmt, argp, fp); + return __fvprintf(__xfputc, fmt, argp, fp); } #endif diff --git a/lib/libusb/usb.c b/lib/libusb/usb.c index 43ea2c4b5..011c4ae61 100644 --- a/lib/libusb/usb.c +++ b/lib/libusb/usb.c @@ -187,7 +187,7 @@ PRIVATE void _usb_urb_complete(struct usb_driver *ud, long urb_id) #endif ud->urb_completion(urb); } else { - printf("WARN: _usb_urb_complete: did not find URB with ID %d", urb_id); + printf("WARN: _usb_urb_complete: did not find URB with ID %ld", urb_id); } } diff --git a/lib/libutil/passwd.c b/lib/libutil/passwd.c index 972ea03fc..ad25d72ce 100644 --- a/lib/libutil/passwd.c +++ b/lib/libutil/passwd.c @@ -209,9 +209,9 @@ pw_cont(int sig) void pw_init(void) { +#ifndef __minix struct rlimit rlim; -#ifndef __minix /* Unlimited resource limits. */ rlim.rlim_cur = rlim.rlim_max = RLIM_INFINITY; (void)setrlimit(RLIMIT_CPU, &rlim); diff --git a/lib/libutil/pty.c b/lib/libutil/pty.c index cd03b4b47..6a0e0c304 100644 --- a/lib/libutil/pty.c +++ b/lib/libutil/pty.c @@ -117,9 +117,13 @@ openpty(int *amaster, int *aslave, char *name, struct termios *term, linep = line; if (chown(line, getuid(), ttygid) == 0 && chmod(line, mode) == 0 && +#ifndef __minix revoke(line) == 0 && +#endif (slave = open(line, O_RDWR, 0)) != -1) { +#ifndef __minix gotit: +#endif *amaster = master; *aslave = slave; if (name) diff --git a/lib/libvassert/vassert.c b/lib/libvassert/vassert.c index 3720551bd..b3a2893fd 100644 --- a/lib/libvassert/vassert.c +++ b/lib/libvassert/vassert.c @@ -6,6 +6,7 @@ #include #include #include +#include #include "vassert.h" VAssert_StateWrapper vassert_state ALIGNED(VASSERT_PAGE_SIZE); @@ -39,6 +40,9 @@ typedef uint32 VA; static sigjmp_buf segv_jmp; +void libvassert_process_backdoor(uint32, uint32, uint32, reg_t *, reg_t *, + reg_t *, reg_t *); + /* *--------------------------------------------------------------------- * @@ -143,7 +147,7 @@ VAssert_Init(void) * to adjust the given address for segments) */ - if(sys_umap(SELF, D, page_address, 1, &ph)) { + if(sys_umap(SELF, D, page_address, 1, (phys_bytes *) &ph)) { printf("VAssert_Init: sys_umap failed\n"); return -1; } diff --git a/lib/nbsd_libc/gen/getttyent.c b/lib/nbsd_libc/gen/getttyent.c index f3f3e2af2..aa6f5df2f 100644 --- a/lib/nbsd_libc/gen/getttyent.c +++ b/lib/nbsd_libc/gen/getttyent.c @@ -98,7 +98,7 @@ getttyent(void) line = fparseln(tf, &len, &lineno, NULL, FPARSELN_UNESCALL); if (line == NULL) { if (errno != 0) - warn(__func__); + warn("%s", __func__); return NULL; } for (p = line; *p && isspace((unsigned char)*p); p++) diff --git a/lib/nbsd_libc/gen/minix/getdomainname.c b/lib/nbsd_libc/gen/minix/getdomainname.c index 5d70f41f0..c913cee6c 100644 --- a/lib/nbsd_libc/gen/minix/getdomainname.c +++ b/lib/nbsd_libc/gen/minix/getdomainname.c @@ -11,17 +11,19 @@ __weak_alias(getdomainname, _getdomainname) #endif -int getdomainname(char *domain, size_t size) +int getdomainname(char *result, size_t size) { char nodename[256]; - char *dot; + char *domain; if (gethostname(nodename, sizeof(nodename)) < 0) return -1; nodename[sizeof(nodename)-1]= 0; - if ((dot= strchr(nodename, '.')) == nil) dot= "."; + if ((domain = strchr(nodename, '.')) != NULL) + strncpy(result, domain+1, size); + else + result[0] = '\0'; - strncpy(domain, dot+1, size); - if (size > 0) domain[size-1]= 0; + if (size > 0) result[size-1]= 0; return 0; } diff --git a/lib/nbsd_libc/gen/minix/getpass.c b/lib/nbsd_libc/gen/minix/getpass.c index 2f2451bb4..623439629 100644 --- a/lib/nbsd_libc/gen/minix/getpass.c +++ b/lib/nbsd_libc/gen/minix/getpass.c @@ -4,7 +4,6 @@ #include #include "namespace.h" -#define _MINIX #include #include #include diff --git a/lib/nbsd_libc/gen/setmode.c b/lib/nbsd_libc/gen/setmode.c index 83dd752b9..4fed4b9cd 100644 --- a/lib/nbsd_libc/gen/setmode.c +++ b/lib/nbsd_libc/gen/setmode.c @@ -90,9 +90,7 @@ static void dumpmode __P((BITCMD *)); * bits) followed by a '+' (set bits). */ mode_t -getmode(bbox, omode) - const void *bbox; - mode_t omode; +getmode(const void *bbox, mode_t omode) { const BITCMD *set; mode_t clrval, newmode, value; @@ -178,8 +176,7 @@ common: if (set->cmd2 & CMD2_CLR) { #define STANDARD_BITS (S_ISUID|S_ISGID|S_IRWXU|S_IRWXG|S_IRWXO) void * -setmode(p) - const char *p; +setmode(const char *p) { int serrno; char op, *ep; @@ -367,9 +364,7 @@ out: } static BITCMD * -addcmd(set, op, who, oparg, mask) - BITCMD *set; - mode_t oparg, who, op, mask; +addcmd(BITCMD *set, mode_t op, mode_t who, mode_t oparg, mode_t mask) { _DIAGASSERT(set != NULL); diff --git a/lib/nbsd_libc/gen/ulimit.c b/lib/nbsd_libc/gen/ulimit.c index 30a7ca498..03aa540d2 100644 --- a/lib/nbsd_libc/gen/ulimit.c +++ b/lib/nbsd_libc/gen/ulimit.c @@ -44,7 +44,10 @@ ulimit(int cmd, ...) { va_list ap; struct rlimit rlimit; - long int new_limit, result; + long int result; +#ifndef __minix + long int new_limit; +#endif va_start(ap, cmd); diff --git a/lib/nbsd_libc/locale/setlocale.c b/lib/nbsd_libc/locale/setlocale.c index 35c12d6e1..b8d4129f2 100644 --- a/lib/nbsd_libc/locale/setlocale.c +++ b/lib/nbsd_libc/locale/setlocale.c @@ -72,20 +72,20 @@ struct { } __link_set_all_categories = { .__ls_length = 7, .__ls_items = { - [0] = &_generic_LC_ALL_desc, - [1] = &_dummy_LC_COLLATE_desc, + [0] = __UNCONST(&_generic_LC_ALL_desc), + [1] = __UNCONST(&_dummy_LC_COLLATE_desc), #ifdef WITH_RUNE - [2] = &_citrus_LC_CTYPE_desc, - [3] = &_citrus_LC_MONETARY_desc, - [4] = &_citrus_LC_NUMERIC_desc, - [5] = &_citrus_LC_TIME_desc, - [6] = &_citrus_LC_MESSAGES_desc, + [2] = __UNCONST(&_citrus_LC_CTYPE_desc), + [3] = __UNCONST(&_citrus_LC_MONETARY_desc), + [4] = __UNCONST(&_citrus_LC_NUMERIC_desc), + [5] = __UNCONST(&_citrus_LC_TIME_desc), + [6] = __UNCONST(&_citrus_LC_MESSAGES_desc), #else - [2] = &_localeio_LC_CTYPE_desc, - [3] = &_localeio_LC_MONETARY_desc, - [4] = &_localeio_LC_NUMERIC_desc, - [5] = &_localeio_LC_TIME_desc, - [6] = &_localeio_LC_MESSAGES_desc, + [2] = __UNCONST(&_localeio_LC_CTYPE_desc), + [3] = __UNCONST(&_localeio_LC_MONETARY_desc), + [4] = __UNCONST(&_localeio_LC_NUMERIC_desc), + [5] = __UNCONST(&_localeio_LC_TIME_desc), + [6] = __UNCONST(&_localeio_LC_MESSAGES_desc), #endif }, }; diff --git a/lib/nbsd_libc/misc/stack_protector.c b/lib/nbsd_libc/misc/stack_protector.c index d247e11a5..0f20cb9ea 100644 --- a/lib/nbsd_libc/misc/stack_protector.c +++ b/lib/nbsd_libc/misc/stack_protector.c @@ -58,8 +58,8 @@ __guard_setup(void) { #ifndef __minix int mib[2]; -#endif size_t len; +#endif if (__stack_chk_guard[0] != 0) return; diff --git a/lib/nbsd_libc/net/getnameinfo.c b/lib/nbsd_libc/net/getnameinfo.c index ce64bc2d9..7e1e8aeb7 100644 --- a/lib/nbsd_libc/net/getnameinfo.c +++ b/lib/nbsd_libc/net/getnameinfo.c @@ -111,8 +111,8 @@ static int getnameinfo_atalk __P((const struct sockaddr *, socklen_t, char *, static int getnameinfo_link __P((const struct sockaddr *, socklen_t, char *, socklen_t, char *, socklen_t, int)); -#endif /* __minix */ static int hexname __P((const u_int8_t *, size_t, char *, socklen_t)); +#endif /* __minix */ /* * Top-level getnameinfo() code. Look at the address family, and pick an @@ -579,7 +579,6 @@ getnameinfo_link(const struct sockaddr *sa, socklen_t salen, (size_t)sdl->sdl_alen, host, hostlen); } } -#endif /* !__minix */ static int hexname(cp, len, host, hostlen) @@ -605,3 +604,4 @@ hexname(cp, len, host, hostlen) } return 0; } +#endif /* !__minix */ diff --git a/lib/nbsd_libc/net/minix/getifaddrs.c b/lib/nbsd_libc/net/minix/getifaddrs.c index e7726edb9..87ddc26ba 100644 --- a/lib/nbsd_libc/net/minix/getifaddrs.c +++ b/lib/nbsd_libc/net/minix/getifaddrs.c @@ -27,7 +27,7 @@ getifaddrs(struct ifaddrs **ifap) memset(&addr, 0, sizeof(addr)); memset(&netmask, 0, sizeof(netmask)); ifa.ifa_next = NULL; - ifa.ifa_name = "ip"; + ifa.ifa_name = __UNCONST("ip"); addr.sin_family = netmask.sin_family = AF_INET; ifa.ifa_addr = (struct sockaddr *) &addr; ifa.ifa_netmask = (struct sockaddr *) &netmask; @@ -36,8 +36,9 @@ getifaddrs(struct ifaddrs **ifap) if(fd < 0) { char *ipd; - if(!(ipd=getenv("IP_DEVICE"))) - ipd="/dev/ip"; + + if(!(ipd = getenv("IP_DEVICE"))) + ipd = __UNCONST("/dev/ip"); if((fd = open(ipd, O_RDWR)) < 0) return -1; } diff --git a/lib/nbsd_libc/resolv/res_send.c b/lib/nbsd_libc/resolv/res_send.c index 702329759..8e8bbb193 100644 --- a/lib/nbsd_libc/resolv/res_send.c +++ b/lib/nbsd_libc/resolv/res_send.c @@ -1068,8 +1068,6 @@ Aerror(const res_state statp, FILE *file, const char *string, int error, char hbuf[NI_MAXHOST]; char sbuf[NI_MAXSERV]; - alen = alen; - if ((statp->options & RES_DEBUG) != 0U) { if (getnameinfo(address, (socklen_t)alen, hbuf, sizeof(hbuf), sbuf, sizeof(sbuf), niflags)) { diff --git a/lib/nbsd_libc/ssp/memcpy_chk.c b/lib/nbsd_libc/ssp/memcpy_chk.c index 7c7a88824..ac2b1ca3a 100644 --- a/lib/nbsd_libc/ssp/memcpy_chk.c +++ b/lib/nbsd_libc/ssp/memcpy_chk.c @@ -35,9 +35,12 @@ __RCSID("$NetBSD: memcpy_chk.c,v 1.4 2008/04/28 20:23:00 martin Exp $"); #include #include +#include #undef memcpy +#if __SSP_FORTIFY_LEVEL > 0 + void * __memcpy_chk(void * __restrict dst, const void * __restrict src, size_t len, size_t slen) @@ -46,3 +49,5 @@ __memcpy_chk(void * __restrict dst, const void * __restrict src, size_t len, __chk_fail(); return memcpy(dst, src, len); } + +#endif diff --git a/lib/nbsd_libc/ssp/memmove_chk.c b/lib/nbsd_libc/ssp/memmove_chk.c index 029205781..a90243d9d 100644 --- a/lib/nbsd_libc/ssp/memmove_chk.c +++ b/lib/nbsd_libc/ssp/memmove_chk.c @@ -38,6 +38,8 @@ __RCSID("$NetBSD: memmove_chk.c,v 1.4 2008/04/28 20:23:00 martin Exp $"); #undef memmove +#if __SSP_FORTIFY_LEVEL > 0 + void * __memmove_chk(void *dst, void *src, size_t len, size_t slen) @@ -46,3 +48,5 @@ __memmove_chk(void *dst, void *src, size_t len, __chk_fail(); return memmove(dst, src, len); } + +#endif diff --git a/lib/nbsd_libc/ssp/memset_chk.c b/lib/nbsd_libc/ssp/memset_chk.c index 6911e77a9..37c1a53f7 100644 --- a/lib/nbsd_libc/ssp/memset_chk.c +++ b/lib/nbsd_libc/ssp/memset_chk.c @@ -38,6 +38,8 @@ __RCSID("$NetBSD: memset_chk.c,v 1.4 2008/04/28 20:23:00 martin Exp $"); #undef memset +#if __SSP_FORTIFY_LEVEL > 0 + void * __memset_chk(void * __restrict dst, int val, size_t len, size_t slen) { @@ -45,3 +47,5 @@ __memset_chk(void * __restrict dst, int val, size_t len, size_t slen) __chk_fail(); return memset(dst, val, len); } + +#endif diff --git a/lib/nbsd_libc/ssp/strcat_chk.c b/lib/nbsd_libc/ssp/strcat_chk.c index 212cdd92e..770bb13d2 100644 --- a/lib/nbsd_libc/ssp/strcat_chk.c +++ b/lib/nbsd_libc/ssp/strcat_chk.c @@ -36,6 +36,8 @@ __RCSID("$NetBSD: strcat_chk.c,v 1.4 2009/11/17 20:44:26 drochner Exp $"); #include #include +#if __SSP_FORTIFY_LEVEL > 0 + char * __strcat_chk(char * __restrict dst, const char * __restrict src, size_t slen) { @@ -58,3 +60,5 @@ __strcat_chk(char * __restrict dst, const char * __restrict src, size_t slen) *d = '\0'; return dst; } + +#endif diff --git a/lib/nbsd_libc/ssp/strcpy_chk.c b/lib/nbsd_libc/ssp/strcpy_chk.c index 74f9af323..21987f4f9 100644 --- a/lib/nbsd_libc/ssp/strcpy_chk.c +++ b/lib/nbsd_libc/ssp/strcpy_chk.c @@ -38,6 +38,8 @@ __RCSID("$NetBSD: strcpy_chk.c,v 1.5 2010/12/28 16:19:25 christos Exp $"); #undef memcpy +#if __SSP_FORTIFY_LEVEL > 0 + char * __strcpy_chk(char * __restrict dst, const char * __restrict src, size_t slen) { @@ -48,3 +50,5 @@ __strcpy_chk(char * __restrict dst, const char * __restrict src, size_t slen) return memcpy(dst, src, len + 1); } + +#endif diff --git a/lib/nbsd_libc/ssp/strncat_chk.c b/lib/nbsd_libc/ssp/strncat_chk.c index ae6679238..864683d00 100644 --- a/lib/nbsd_libc/ssp/strncat_chk.c +++ b/lib/nbsd_libc/ssp/strncat_chk.c @@ -37,6 +37,8 @@ __RCSID("$NetBSD: strncat_chk.c,v 1.4 2009/11/17 20:44:26 drochner Exp $"); #include #include +#if __SSP_FORTIFY_LEVEL > 0 + char * __strncat_chk(char * __restrict dst, const char * __restrict src, size_t len, size_t slen) @@ -68,3 +70,5 @@ __strncat_chk(char * __restrict dst, const char * __restrict src, size_t len, *d = '\0'; return dst; } + +#endif diff --git a/lib/nbsd_libc/ssp/strncpy_chk.c b/lib/nbsd_libc/ssp/strncpy_chk.c index 2fe5211bf..af876feda 100644 --- a/lib/nbsd_libc/ssp/strncpy_chk.c +++ b/lib/nbsd_libc/ssp/strncpy_chk.c @@ -38,6 +38,8 @@ __RCSID("$NetBSD: strncpy_chk.c,v 1.4 2008/04/28 20:23:00 martin Exp $"); #undef strncpy +#if __SSP_FORTIFY_LEVEL > 0 + char * __strncpy_chk(char * __restrict dst, const char * __restrict src, size_t len, size_t slen) @@ -47,3 +49,5 @@ __strncpy_chk(char * __restrict dst, const char * __restrict src, size_t len, return strncpy(dst, src, len); } + +#endif diff --git a/lib/nbsd_libc/stdlib/strfmon.c b/lib/nbsd_libc/stdlib/strfmon.c index d53ed7f13..8ce598bcd 100644 --- a/lib/nbsd_libc/stdlib/strfmon.c +++ b/lib/nbsd_libc/stdlib/strfmon.c @@ -36,7 +36,7 @@ __RCSID("$NetBSD: strfmon.c,v 1.7 2009/01/30 23:46:03 lukem Exp $"); #endif #endif /* LIBC_SCCS and not lint */ -#if defined(__NetBSD__) +#if defined(__NetBSD__) || defined(__minix) #include "namespace.h" #include #endif diff --git a/lib/nbsd_libc/string/strmode.c b/lib/nbsd_libc/string/strmode.c index 6d7bd1f52..40b81a1f3 100644 --- a/lib/nbsd_libc/string/strmode.c +++ b/lib/nbsd_libc/string/strmode.c @@ -51,9 +51,7 @@ __RCSID("$NetBSD: strmode.c,v 1.18 2006/10/07 22:04:18 apb Exp $"); #if !HAVE_STRMODE void -strmode(mode, p) - mode_t mode; - char *p; +strmode(mode_t mode, char *p) { _DIAGASSERT(p != NULL); diff --git a/lib/nbsd_libc/sys-minix/__getcwd.c b/lib/nbsd_libc/sys-minix/__getcwd.c index 7fec1faad..af4a60037 100644 --- a/lib/nbsd_libc/sys-minix/__getcwd.c +++ b/lib/nbsd_libc/sys-minix/__getcwd.c @@ -15,6 +15,9 @@ #include #include +/* libc-private interface */ +int __getcwd(char *, size_t); + static int addpath(const char *path, char **ap, const char *entry) /* Add the name of a directory entry at the front of the path being built. * Note that the result always starts with a slash. @@ -59,7 +62,8 @@ int __getcwd(char *path, size_t size) struct stat above, current, tmp; struct dirent *entry; DIR *d; - char *p, *up, *dotdot; + char *p, *up; + const char *dotdot = ".."; int cycle; if (path == NULL || size <= 1) { errno= EINVAL; return -1; } @@ -70,7 +74,6 @@ int __getcwd(char *path, size_t size) if (stat(".", ¤t) < 0) return -1; while (1) { - dotdot= ".."; if (stat(dotdot, &above) < 0) { recover(p); return -1; } if (above.st_dev == current.st_dev diff --git a/lib/nbsd_libc/sys-minix/bind.c b/lib/nbsd_libc/sys-minix/bind.c index 666164af1..dfad3b0f8 100644 --- a/lib/nbsd_libc/sys-minix/bind.c +++ b/lib/nbsd_libc/sys-minix/bind.c @@ -180,37 +180,6 @@ static int _udp_bind(int sock, const struct sockaddr *address, return r; } -static int in_group(uid_t uid, gid_t gid) -{ - int r, i; - int size; - gid_t *list; - - size = sysconf(_SC_NGROUPS_MAX); - list = malloc(size * sizeof(gid_t)); - - if (list == NULL) { - return 0; - } - - r= getgroups(size, list); - if (r == -1) { - free(list); - return 0; - } - - for (i = 0; i < r; i++) { - if (gid == list[i]) { - free(list); - return 1; - } - } - - free(list); - return 0; -} - - static int _uds_bind(int sock, const struct sockaddr *address, socklen_t address_len, struct sockaddr_un *uds_addr) { diff --git a/lib/nbsd_libc/sys-minix/getgroups.c b/lib/nbsd_libc/sys-minix/getgroups.c index ded3dc122..30ad4b1cf 100644 --- a/lib/nbsd_libc/sys-minix/getgroups.c +++ b/lib/nbsd_libc/sys-minix/getgroups.c @@ -17,7 +17,7 @@ PUBLIC int getgroups(int ngroups, gid_t *arr) { message m; m.m1_i1 = ngroups; - m.m1_p1 = arr; + m.m1_p1 = (char *) arr; return(_syscall(PM_PROC_NR, GETGROUPS, &m)); } diff --git a/lib/nbsd_libc/sys-minix/getsid.c b/lib/nbsd_libc/sys-minix/getsid.c index c4505fcc1..7b8170e69 100644 --- a/lib/nbsd_libc/sys-minix/getsid.c +++ b/lib/nbsd_libc/sys-minix/getsid.c @@ -1,8 +1,9 @@ #include -#include #include "namespace.h" +#include #include +#include pid_t getsid(pid_t p) { diff --git a/lib/nbsd_libc/sys-minix/mount.c b/lib/nbsd_libc/sys-minix/mount.c index dc543a839..8a24160af 100644 --- a/lib/nbsd_libc/sys-minix/mount.c +++ b/lib/nbsd_libc/sys-minix/mount.c @@ -46,8 +46,8 @@ int mountflags; int use_existing = 0; /* Default values. */ - if (type == NULL) type = FSDEFAULT; - if (args == NULL) args = ""; + if (type == NULL) type = __UNCONST(FSDEFAULT); + if (args == NULL) args = __UNCONST(""); reuse = 0; /* Check mount flags */ @@ -79,7 +79,7 @@ int mountflags; sprintf(label, "fs_%.12s", p); } else { if (stat(name, &statbuf) < 0) return -1; - sprintf(label, "fs_%04x%x", statbuf.st_dev, statbuf.st_ino); + sprintf(label, "fs_%04x%llx", statbuf.st_dev, statbuf.st_ino); } } else { /* label to long? */ diff --git a/lib/nbsd_libc/sys-minix/sendmsg.c b/lib/nbsd_libc/sys-minix/sendmsg.c index 52727cd6e..6ffa7ab0f 100644 --- a/lib/nbsd_libc/sys-minix/sendmsg.c +++ b/lib/nbsd_libc/sys-minix/sendmsg.c @@ -92,7 +92,7 @@ static ssize_t _uds_sendmsg_dgram(int sock, const struct msghdr *msg, { struct msg_control msg_ctrl; struct sockaddr_un *dest_addr; - int i, r; + int r; if (flags != 0) { #if DEBUG diff --git a/lib/nbsd_libc/sys-minix/sendto.c b/lib/nbsd_libc/sys-minix/sendto.c index 367c9be11..d746e0556 100644 --- a/lib/nbsd_libc/sys-minix/sendto.c +++ b/lib/nbsd_libc/sys-minix/sendto.c @@ -38,7 +38,6 @@ ssize_t sendto(int sock, const void *message, size_t length, int flags, int r; nwio_tcpopt_t tcpopt; nwio_udpopt_t udpopt; - struct sockaddr_un uds_addr; int uds_sotype = -1; r= ioctl(sock, NWIOGTCPOPT, &tcpopt); diff --git a/lib/nbsd_libc/sys-minix/stat.c b/lib/nbsd_libc/sys-minix/stat.c index ee39727eb..3357acf53 100644 --- a/lib/nbsd_libc/sys-minix/stat.c +++ b/lib/nbsd_libc/sys-minix/stat.c @@ -31,10 +31,9 @@ static void prev_stat2new_stat(struct stat *new, struct minix_prev_stat *prev) new->st_ctimespec.tv_sec = prev->st_ctime; } +int _stat(const char *name, struct stat *buffer); -int _stat(name, buffer) -const char *name; -struct stat *buffer; +int _stat(const char *name, struct stat *buffer) { message m; int r; @@ -65,9 +64,9 @@ struct stat *buffer; return r; } -int _fstat(fd, buffer) -int fd; -struct stat *buffer; +int _fstat(int fd, struct stat *buffer); + +int _fstat(int fd, struct stat *buffer) { message m; int r; @@ -96,9 +95,9 @@ struct stat *buffer; return r; } -int _lstat(name, buffer) -const char *name; -struct stat *buffer; +int _lstat(const char *name, struct stat *buffer); + +int _lstat(const char *name, struct stat *buffer) { message m; int r; diff --git a/lib/nbsd_libc/sys-minix/sysuname.c b/lib/nbsd_libc/sys-minix/sysuname.c index 2ce733272..142d3bea4 100644 --- a/lib/nbsd_libc/sys-minix/sysuname.c +++ b/lib/nbsd_libc/sys-minix/sysuname.c @@ -5,6 +5,7 @@ #include #include "namespace.h" #include +#include int sysuname(int req, int field, char *value, size_t len) { diff --git a/lib/nbsd_libc/termios/tcsetattr.c b/lib/nbsd_libc/termios/tcsetattr.c index 43f11645b..b72e197cf 100644 --- a/lib/nbsd_libc/termios/tcsetattr.c +++ b/lib/nbsd_libc/termios/tcsetattr.c @@ -55,7 +55,9 @@ tcsetattr(fd, opt, t) int fd, opt; const struct termios *t; { +#ifndef __minix struct termios localterm; +#endif _DIAGASSERT(fd != -1); _DIAGASSERT(t != NULL); @@ -71,11 +73,11 @@ tcsetattr(fd, opt, t) #endif /* __minix */ switch (opt & ~TCSASOFT) { case TCSANOW: - return (ioctl(fd, TIOCSETA, t)); + return (ioctl(fd, TIOCSETA, __UNCONST(t))); case TCSADRAIN: - return (ioctl(fd, TIOCSETAW, t)); + return (ioctl(fd, TIOCSETAW, __UNCONST(t))); case TCSAFLUSH: - return (ioctl(fd, TIOCSETAF, t)); + return (ioctl(fd, TIOCSETAF, __UNCONST(t))); default: errno = EINVAL; return (-1); diff --git a/lib/nbsd_libcompat_minix/passwd.c b/lib/nbsd_libcompat_minix/passwd.c index 119faf160..86890ed12 100644 --- a/lib/nbsd_libcompat_minix/passwd.c +++ b/lib/nbsd_libcompat_minix/passwd.c @@ -10,6 +10,7 @@ #include #include #include +#include /* * group_from_gid() diff --git a/lib/nbsd_libm/arch/i387/fenv.c b/lib/nbsd_libm/arch/i387/fenv.c index 085e030ab..cf94c5618 100644 --- a/lib/nbsd_libm/arch/i387/fenv.c +++ b/lib/nbsd_libm/arch/i387/fenv.c @@ -119,10 +119,10 @@ static void __test_sse(void) __attribute__ ((constructor)); static void __test_sse(void) { +#ifndef __minix size_t oldlen = sizeof(__HAS_SSE); int rv; -#ifndef __minix rv = sysctlbyname("machdep.sse", &__HAS_SSE, &oldlen, NULL, 0); if (rv == -1) #endif diff --git a/lib/nbsd_libminlib/vm_query_exit.c b/lib/nbsd_libminlib/vm_query_exit.c index f65218728..9f5596387 100644 --- a/lib/nbsd_libminlib/vm_query_exit.c +++ b/lib/nbsd_libminlib/vm_query_exit.c @@ -1,6 +1,7 @@ #define _SYSTEM 1 #include #include +#include /* return -1, when the query itself or the processing of query has errors. * return 1, when there are more processes waiting to be queried. @@ -25,7 +26,6 @@ PUBLIC int vm_query_exit(int *endpt) PUBLIC int vm_watch_exit(endpoint_t ep) { message m; - int r; memset(&m, 0, sizeof(m)); m.VM_WE_EP = ep; diff --git a/nbsd_include/sys/ctype_inline.h b/nbsd_include/sys/ctype_inline.h index 105cdcb2c..9cdc6e045 100644 --- a/nbsd_include/sys/ctype_inline.h +++ b/nbsd_include/sys/ctype_inline.h @@ -45,19 +45,19 @@ #include -#define isdigit(c) ((int)((_ctype_ + 1)[(c)] & _CTYPE_N)) -#define islower(c) ((int)((_ctype_ + 1)[(c)] & _CTYPE_L)) -#define isspace(c) ((int)((_ctype_ + 1)[(c)] & _CTYPE_S)) -#define ispunct(c) ((int)((_ctype_ + 1)[(c)] & _CTYPE_P)) -#define isupper(c) ((int)((_ctype_ + 1)[(c)] & _CTYPE_U)) -#define isalpha(c) ((int)((_ctype_ + 1)[(c)] & (_CTYPE_U|_CTYPE_L))) -#define isxdigit(c) ((int)((_ctype_ + 1)[(c)] & (_CTYPE_N|_CTYPE_X))) -#define isalnum(c) ((int)((_ctype_ + 1)[(c)] & (_CTYPE_U|_CTYPE_L|_CTYPE_N))) -#define isprint(c) ((int)((_ctype_ + 1)[(c)] & (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N|_CTYPE_B))) -#define isgraph(c) ((int)((_ctype_ + 1)[(c)] & (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N))) -#define iscntrl(c) ((int)((_ctype_ + 1)[(c)] & _CTYPE_C)) -#define tolower(c) ((int)((_tolower_tab_ + 1)[(c)])) -#define toupper(c) ((int)((_toupper_tab_ + 1)[(c)])) +#define isdigit(c) ((int)((_ctype_ + 1)[(unsigned char)(c)] & _CTYPE_N)) +#define islower(c) ((int)((_ctype_ + 1)[(unsigned char)(c)] & _CTYPE_L)) +#define isspace(c) ((int)((_ctype_ + 1)[(unsigned char)(c)] & _CTYPE_S)) +#define ispunct(c) ((int)((_ctype_ + 1)[(unsigned char)(c)] & _CTYPE_P)) +#define isupper(c) ((int)((_ctype_ + 1)[(unsigned char)(c)] & _CTYPE_U)) +#define isalpha(c) ((int)((_ctype_ + 1)[(unsigned char)(c)] & (_CTYPE_U|_CTYPE_L))) +#define isxdigit(c) ((int)((_ctype_ + 1)[(unsigned char)(c)] & (_CTYPE_N|_CTYPE_X))) +#define isalnum(c) ((int)((_ctype_ + 1)[(unsigned char)(c)] & (_CTYPE_U|_CTYPE_L|_CTYPE_N))) +#define isprint(c) ((int)((_ctype_ + 1)[(unsigned char)(c)] & (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N|_CTYPE_B))) +#define isgraph(c) ((int)((_ctype_ + 1)[(unsigned char)(c)] & (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N))) +#define iscntrl(c) ((int)((_ctype_ + 1)[(unsigned char)(c)] & _CTYPE_C)) +#define tolower(c) ((int)((_tolower_tab_ + 1)[(unsigned char)(c)])) +#define toupper(c) ((int)((_toupper_tab_ + 1)[(unsigned char)(c)])) #if defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE) #define isascii(c) ((unsigned)(c) <= 0177) diff --git a/nbsd_include/sys/socket.h b/nbsd_include/sys/socket.h index 24b9d4525..a738ce842 100644 --- a/nbsd_include/sys/socket.h +++ b/nbsd_include/sys/socket.h @@ -274,6 +274,9 @@ struct cmsghdr { #include +__BEGIN_DECLS +int __cmsg_alignbytes(void); +__END_DECLS __BEGIN_DECLS int accept(int, struct sockaddr * __restrict, socklen_t * __restrict); diff --git a/nbsd_include/sys/syslimits.h b/nbsd_include/sys/syslimits.h index 4fb0039dc..a795e03b7 100644 --- a/nbsd_include/sys/syslimits.h +++ b/nbsd_include/sys/syslimits.h @@ -33,7 +33,7 @@ #define OPEN_MAX __MINIX_OPEN_MAX /* max open files per process */ #endif #define PATH_MAX __MINIX_PATH_MAX /* # chars in a path name */ -#define PIPE_BUF 7168 /* # bytes in atomic write to a pipe */ +#define PIPE_BUF 32768 /* # bytes in atomic write to a pipe */ #define BC_BASE_MAX INT_MAX /* max ibase/obase values in bc(1) */ #define BC_DIM_MAX 65535 /* max array elements in bc(1) */ diff --git a/nbsd_include/unistd.h b/nbsd_include/unistd.h index c7621e8ec..445775424 100644 --- a/nbsd_include/unistd.h +++ b/nbsd_include/unistd.h @@ -226,9 +226,7 @@ int nice(int); __aconst char *crypt(const char *, const char *); int encrypt(char *, int); char *getpass(const char *); -#ifndef __minix pid_t getsid(pid_t); -#endif /* !__minix */ #endif @@ -356,12 +354,12 @@ int issetugid(void); int nfssvc(int, void *); #ifndef __minix int profil(char *, size_t, u_long, u_int); +#endif /* !__minix */ #ifndef __PSIGNAL_DECLARED #define __PSIGNAL_DECLARED /* also in signal.h */ void psignal(int, const char *); #endif /* __PSIGNAL_DECLARED */ -#endif /* !__minix */ int rcmd(char **, int, const char *, const char *, const char *, int *); #ifdef __minix int reboot(int, ...); diff --git a/share/mk/minix.gcc.mk b/share/mk/minix.gcc.mk index 5366519ad..658489531 100644 --- a/share/mk/minix.gcc.mk +++ b/share/mk/minix.gcc.mk @@ -1,2 +1,2 @@ AFLAGS+=-D__ASSEMBLY__ -D_EM_WSIZE=4 -CFLAGS+= -fno-builtin -Wall -march=i586 +CFLAGS+= -fno-builtin -Wall -march=i586 -Wno-sign-compare diff --git a/test/Makefile b/test/Makefile index cba7e3fec..1721030b2 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,7 +1,7 @@ # Makefile for the tests. GCC?=gcc -CFLAGS= -O0 -D_MINIX -D_POSIX_SOURCE -g +CFLAGS= -O0 -D_MINIX -D_POSIX_SOURCE -g -Wall -Werror .if ${COMPILER_TYPE} == "gnu" CFLAGS+= -D_NETBSD_SOURCE LIBS+= -lm -lcompat_minix @@ -15,12 +15,12 @@ OBJ= test1 test2 test3 test4 test5 test6 test7 test8 test9 \ test21 test22 test23 test25 test26 test27 test28 test29 \ test30 test31 test32 test34 test35 test36 test37 test38 \ test39 t10a t11a t11b test40 t40a t40b t40c t40d t40e t40f test41 \ - test42 test45 test47 test48 test49 test50 test51 test52 test53 \ - test54 test55 test56 test58 + test42 test45 test47 test49 test50 test51 test52 test53 \ + test54 test56 test58 BIGOBJ= test20 test24 ROOTOBJ= test11 test33 test43 test44 test46 -GCCOBJ= test45-gcc test49-gcc +GCCOBJ= test45-gcc test48 test49-gcc test55 GCCFPUOBJ= test51-gcc test52-gcc OTHEROBJ= test57 test59 diff --git a/test/t40e.c b/test/t40e.c index 5a5ba4c39..1a8f8293a 100644 --- a/test/t40e.c +++ b/test/t40e.c @@ -219,7 +219,10 @@ void do_child(int childno) { } void do_parent(void) { - int fd_sock, fd_new, yes = 1, exitstatus; +#ifndef _MINIX + int yes = 1; +#endif + int fd_sock, fd_new, exitstatus; int sockets[NUMCHILDREN], i; fd_set fds_read, fds_write, fds_error; fd_set fds_compare_read, fds_compare_write; @@ -239,7 +242,7 @@ void do_parent(void) { my_addr.sin_port = htons(MYPORT); /* Short, network byte order */ my_addr.sin_addr.s_addr = INADDR_ANY; /* Normally we'd zerofill sin_zero, but there is no such thing on Minix */ -#ifndef _MINIX +#ifndef _MINIX memset(my_addr.sin_zero, '\0', sizeof my_addr.sin_zero); #endif diff --git a/test/test10.c b/test/test10.c index 0d7145382..b5e8c28e3 100644 --- a/test/test10.c +++ b/test/test10.c @@ -74,7 +74,7 @@ int n; { int pid, k; - if (pid = fork()) { + if ((pid = fork()) != 0) { wait(&n); /* wait for some child (any one) */ } else { k = execl(name[n], (char *) 0); diff --git a/test/test11.c b/test/test11.c index a1ab97f80..1e279cf19 100644 --- a/test/test11.c +++ b/test/test11.c @@ -147,7 +147,8 @@ void test11c() int n, etc_uid; uid_t ruid, euid; char *lnamep, *cnamep, *p; - char array[L_cuserid], save[L_cuserid], save2[L_cuserid]; +#define MAXLINELEN 200 + char array[MAXLINELEN], save[L_cuserid], save2[L_cuserid]; FILE *stream; subtest = 3; @@ -176,7 +177,7 @@ void test11c() /* Check login against passwd file. First lookup login in /etc/passwd. */ if (n == 0) return; /* if login not found, don't look it up */ if ( (stream = fopen(passwd_file, "r")) == NULL) e(8); - while (fgets(array, L_cuserid, stream) != NULL) { + while (fgets(array, sizeof(array), stream) != NULL) { if (strncmp(array, save, n) == 0) { p = &array[0]; /* hunt for uid */ while (*p != ':') p++; diff --git a/test/test17.c b/test/test17.c index 0fbd6898a..faed624c1 100644 --- a/test/test17.c +++ b/test/test17.c @@ -117,7 +117,6 @@ int main(argc, argv) int argc; char *argv[]; { - char buffer[PATH_MAX + 1]; int n, mask, i; /* Create filenames for MAXOPEN files, the *filenames[] array. */ diff --git a/test/test18.c b/test/test18.c index 8378d81a1..0bdcb0101 100644 --- a/test/test18.c +++ b/test/test18.c @@ -124,7 +124,6 @@ _PROTOTYPE(void quit, (void)); ****************************************************************************/ int main(int argc, char **argv) { - char buffer[PATH_MAX + 1]; int n, i; /* Create filenames for MAXOPEN files, the *file[] array. */ diff --git a/test/test19.c b/test/test19.c index b0cad2bba..8499b4b81 100644 --- a/test/test19.c +++ b/test/test19.c @@ -8,11 +8,11 @@ #include #include -#define MAX_ERROR 4 +#define MAX_ERROR 3 #define NB 30L #define NBOUNDS 6 -int errct, subtest, passes, pipesigs; +int subtest, passes, pipesigs; long t1; char aa[100]; @@ -20,6 +20,8 @@ char b[4] = {0, 1, 2, 3}, c[4] = {10, 20, 30, 40}, d[4] = {6, 7, 8, 9}; long bounds[NBOUNDS] = {7, 9, 50, 519, 520, 40000L}; char buff[30000]; +#include "common.c" + _PROTOTYPE(int main, (int argc, char *argv[])); _PROTOTYPE(void test19a, (void)); _PROTOTYPE(void test19b, (void)); @@ -30,23 +32,17 @@ _PROTOTYPE(void test19f, (void)); _PROTOTYPE(void test19g, (void)); _PROTOTYPE(void clraa, (void)); _PROTOTYPE(void pipecatcher, (int s)); -_PROTOTYPE(void e, (int n)); -_PROTOTYPE(void quit, (void)); int main(argc, argv) int argc; char *argv[]; { - char buffer[PATH_MAX + 1]; int i, m; + start(19); + m = (argc == 2 ? atoi(argv[1]) : 0xFFFF); - system("rm -rf DIR_19; mkdir DIR_19"); - chdir("DIR_19"); - - printf("Test 19 "); - fflush(stdout); for (i = 0; i < 4; i++) { if (m & 0001) test19a(); if (m & 0002) test19b(); @@ -480,39 +476,3 @@ int s; /* it is supposed to have an arg */ pipesigs++; } -void e(n) -int n; -{ - int err_num = errno; /* save errno in case printf clobbers it */ - - printf("Subtest %d, error %d errno=%d ", subtest, n, errno); - fflush(stdout); /* aargh! Most results go to stdout and are - * messed up by perror going to stderr. - * Should replace perror by printf and strerror - * in all the tests. - */ - errno = err_num; /* restore errno, just in case */ - perror(""); - if (errct++ > MAX_ERROR) { - printf("Too many errors; test aborted\n"); - chdir(".."); - system("rm -rf DIR*"); - exit(1); - } -} - -void quit() -{ - - chdir(".."); - system("rm -rf DIR*"); - - if (errct == 0) { - printf("ok\n"); - exit(0); - } else { - printf("%d errors\n", errct); - exit(1); - } -} - diff --git a/test/test21.c b/test/test21.c index 961fadb9b..0aa5abd78 100644 --- a/test/test21.c +++ b/test/test21.c @@ -16,7 +16,7 @@ #include #define ITERATIONS 1 -#define MAX_ERROR 4 +#define MAX_ERROR 3 #include "common.c" @@ -42,14 +42,12 @@ int argc; char *argv[]; { - char buffer[PATH_MAX + 1]; int i, m = 0xFFFF; - sync(); + start(21); if (argc == 2) m = atoi(argv[1]); - start(21); for (i = 0; i < ITERATIONS; i++) { if (m & 00001) test21a(); if (m & 00002) test21b(); diff --git a/test/test25.c b/test/test25.c index 789f0a43d..9c7f539bc 100644 --- a/test/test25.c +++ b/test/test25.c @@ -43,7 +43,6 @@ _PROTOTYPE(void makelongnames, (void)); int main(int argc, char *argv[]) { - char buffer[PATH_MAX + 1]; int i, m = 0xFFFF; sync(); diff --git a/test/test27.c b/test/test27.c index 689486b8d..a81b49caa 100644 --- a/test/test27.c +++ b/test/test27.c @@ -252,14 +252,6 @@ void test27c() Chdir("DIR_27"); /* back to test dir */ /* Check on ToLongName etc. */ -#ifdef _POSIX_NO_TRUNC -# if _POSIX_NO_TRUNC - 0 != -1 - if (stat(ToLongName, &st) != -1) e(4); /* name is too long */ - if (errno != ENAMETOOLONG) e(5); -# endif -#else -# include "error, this case requires dynamic checks and is not handled" -#endif if (stat(ToLongPath, &st) != -1) e(6); /* path is too long */ if (errno != ENAMETOOLONG) e(7); diff --git a/test/test28.c b/test/test28.c index 0abee297a..4c81b4608 100644 --- a/test/test28.c +++ b/test/test28.c @@ -164,8 +164,6 @@ void test28b() int other = 0, dot = 0, dotdot = 0; /* dirent counters */ int r; /* Intermediate result */ int rmdir_result; /* tmp var */ - nlink_t nlink; - static char bar[20]; int stat_loc, does_truncate; subtest = 2; @@ -210,19 +208,6 @@ void test28b() if (mkdir("foo", 0777) != 0) e(21); System("touch foo/xyzzy"); -#if 0 - /* Test what happens if the parent link count > LINK_MAX. */ - /* This takes too long. */ - for (nlink = 1; nlink < LINK_MAX; nlink++) { /* make all */ - sprintf(bar, "foo/bar.%d", nlink); - if (link("foo/xyzzy", bar) != 0) e(24); - } - if (stat("foo/xyzzy", &st) != 0) e(25); /* foo now */ - if (st.st_nlink != LINK_MAX) e(26); /* is full */ - if (link("foo/xyzzy", "nono") != -1) e(27); /* no more */ - if (errno != EMLINK) e(28); /* entrys. */ - System("rm -rf foo/nono"); /* Just in case. */ -#endif /* Test if rmdir removes only empty dirs */ if (rmdir("foo") != -1) e(29);/* not empty */ diff --git a/test/test3.c b/test/test3.c index a71ed5f9c..089d8f0ba 100644 --- a/test/test3.c +++ b/test/test3.c @@ -12,42 +12,32 @@ #include #define ITERATIONS 10 -#define MAX_ERROR 4 +#define MAX_ERROR 3 #define SIZE 64 -int errct, subtest; +int subtest; char el_weirdo[] = "\n\t\\\e@@!!##\e\e\n\n"; +#include "common.c" + _PROTOTYPE(int main, (int argc, char *argv [])); _PROTOTYPE(void test3a, (void)); -_PROTOTYPE(void test3b, (void)); _PROTOTYPE(void test3c, (void)); _PROTOTYPE(void test3d, (void)); _PROTOTYPE(void test3e, (void)); -_PROTOTYPE(void quit, (void)); _PROTOTYPE(void e, (int n)); int main(argc, argv) int argc; char *argv[]; { - char buffer[PATH_MAX + 1]; int i, m = 0xFFFF; - sync(); - - + start(3); if (argc == 2) m = atoi(argv[1]); - printf("Test 3 "); - fflush(stdout); /* have to flush for child's benefit */ - - system("rm -rf DIR_03; mkdir DIR_03"); - chdir("DIR_03"); - for (i = 0; i < ITERATIONS; i++) { if (m & 0001) test3a(); - if (m & 0002) test3b(); if (m & 0004) test3c(); if (m & 0010) test3d(); if (m & 0020) test3e(); @@ -139,21 +129,6 @@ void test3a() } -void test3b() -{ -/* Test uname. */ - - struct utsname u; /* contains all kinds of system ids */ - - subtest = 2; -#if 0 - errno = -2000; /* None of these calls set errno. */ - if (uname(&u) != 0) e(1); - if (strcmp(u.sysname, "MINIX") != 0 - && strcmp(u.sysname, "Minix") != 0) e(2); /* only one defined */ -#endif -} - void test3c() { /* Test getenv. Asume HOME, PATH, and LOGNAME exist (not strictly required).*/ @@ -221,32 +196,3 @@ void test3e() if (sysconf(_SC_JOB_CONTROL) >= 0) e(5); /* no job control! */ } -void quit() -{ - chdir(".."); - system("rm -rf DIR*"); - - if (errct == 0) { - printf("ok\n"); - exit(0); - } else { - printf("%d errors\n", errct); - exit(4); - } -} - -void e(n) -int n; -{ - int err_num = errno; /* save errno in case printf clobbers it */ - - printf("Subtest %d, error %d errno=%d ", subtest, n, errno); - errno = err_num; /* restore errno, just in case */ - perror(""); - if (errct++ > MAX_ERROR) { - printf("Test aborted. Too many errors: "); - chdir(".."); - system("rm -rf DIR*"); - exit(1); - } -} diff --git a/test/test42.c b/test/test42.c index 39787821b..2b5be5fcc 100644 --- a/test/test42.c +++ b/test/test42.c @@ -883,7 +883,6 @@ void test_attach_child() void test_attach() { pid_t pid; - int r, status; subtest = 9; diff --git a/test/test43.c b/test/test43.c index 0e4d509ab..f32a2bc4d 100644 --- a/test/test43.c +++ b/test/test43.c @@ -11,39 +11,15 @@ #include #include -#define MAX_ERROR 4 +#define MAX_ERROR 3 -static int errct = 0; -static const char *executable, *subtest; +int subtest; +static const char *executable; + +#include "common.c" #define ERR (e(__LINE__)) -static void e(int n) -{ - printf("File %s, error line %d, errno %d: %s\n", - subtest, n, errno, strerror(errno)); - - if (errct++ > MAX_ERROR) - { - printf("Too many errors; test aborted\n"); - exit(1); - } -} - -static void quit(void) -{ - if (errct == 0) - { - printf("ok\n"); - exit(0); - } - else - { - printf("%d errors\n", errct); - exit(1); - } -} - static char *remove_last_path_component(char *path) { char *current, *last; @@ -113,7 +89,6 @@ static void check_realpath(const char *path, int expected_errno) expected_errno2 = check_path_components(path); /* run realpath */ - subtest = path; errno = 0; resolved_path = realpath(path, buffer); @@ -122,7 +97,6 @@ static void check_realpath(const char *path, int expected_errno) { if (resolved_path) ERR; if (errno != expected_errno && errno != expected_errno2) ERR; - subtest = NULL; return; } @@ -130,7 +104,6 @@ static void check_realpath(const char *path, int expected_errno) if (!resolved_path) { ERR; - subtest = NULL; return; } errno = 0; @@ -157,7 +130,6 @@ static void check_realpath(const char *path, int expected_errno) if (lstat(resolved_path, &statbuf[1]) < 0) { ERR; return; } if ((statbuf[1].st_mode & S_IFMT) != S_IFDIR) ERR; } - subtest = NULL; } static void check_realpath_step_by_step(const char *path, int expected_errno) @@ -227,11 +199,17 @@ static void check_realpath_recurse(const char *path, int depth) /* loop through subdirectories (including . and ..) */ if (!(dir = opendir(path))) { - if (errno != ENOENT && errno != ENOTDIR) + /* Opening some special files might result in errors when the + * corresponding hardware is not present, or simply when access + * rights prohibit access (e.g., /dev/log). + */ + if (errno != ENOTDIR + && errno != ENXIO && errno != EIO && errno != EACCES) { ERR; + } return; } - while (dirent = readdir(dir)) + while ((dirent = readdir(dir)) != NULL) { /* build path */ if (!pathncat(pathsub, sizeof(pathsub), path, dirent->d_name)) @@ -247,7 +225,7 @@ static void check_realpath_recurse(const char *path, int depth) } #define PATH_DEPTH 4 -#define PATH_BASE "/t43" +#define PATH_BASE "/." #define L(x) PATH_BASE "/link_" #x ".tmp" static char basepath[PATH_MAX + 1]; @@ -255,7 +233,6 @@ static char basepath[PATH_MAX + 1]; static char *addbasepath(char *buffer, const char *path) { size_t basepathlen, pathlen; - int slashlen; /* assumption: both start with slash and neither end with it */ assert(basepath[0] == '/'); @@ -279,56 +256,6 @@ static char *addbasepath(char *buffer, const char *path) return buffer; } -static void cleanup(const char *path) -{ - DIR *dir; - struct dirent *dirent; - char pathsub[PATH_MAX + 1]; - struct stat statbuf; - - /* determine file type, avoid following links */ - if (lstat(path, &statbuf) < 0) - { - if (errno != ENOENT) ERR; - return; - } - - /* only recursively process directories (NOT symlinks!) */ - if ((statbuf.st_mode & S_IFMT) != S_IFDIR) - { - if (unlink(path) < 0) ERR; - return; - } - - /* loop through subdirectories (excluding . and ..) */ - if (!(dir = opendir(path))) - { - ERR; - return; - } - while (dirent = readdir(dir)) - { - /* ignore current and parent directories */ - if (strcmp(dirent->d_name, ".") == 0 || - strcmp(dirent->d_name, "..") == 0) - continue; - - /* build path */ - if (!pathncat(pathsub, sizeof(pathsub), path, dirent->d_name)) - { - ERR; - continue; - } - - /* delete path */ - cleanup(pathsub); - } - if (closedir(dir) < 0) ERR; - - /* remove the (now empty) directory itself */ - if (rmdir(path) < 0) ERR; -} - static void test_dirname(const char *path, const char *exp) { char buffer[PATH_MAX]; @@ -362,16 +289,14 @@ static void test_dirname(const char *path, const char *exp) int main(int argc, char **argv) { char buffer1[PATH_MAX + 1], buffer2[PATH_MAX + 1]; + subtest = 1; /* initialize */ - printf("Test 43 "); - fflush(stdout); + start(43); executable = argv[0]; getcwd(basepath, sizeof(basepath)); - cleanup(addbasepath(buffer1, PATH_BASE)); /* prepare some symlinks to make it more difficult */ - if (mkdir(addbasepath(buffer1, PATH_BASE), S_IRWXU) < 0) ERR; if (symlink("/", addbasepath(buffer1, L(1))) < 0) ERR; if (symlink(basepath, addbasepath(buffer1, L(2))) < 0) ERR; @@ -387,7 +312,7 @@ int main(int argc, char **argv) check_realpath_step_by_step(addbasepath(buffer1, L(5)), ELOOP); /* delete the symlinks */ - cleanup(addbasepath(buffer1, PATH_BASE)); + cleanup(); /* also test dirname */ test_dirname("", "."); diff --git a/test/test45.c b/test/test45.c index c7a2f0837..85f546a37 100644 --- a/test/test45.c +++ b/test/test45.c @@ -4,6 +4,10 @@ #include #include +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wtautological-compare" +#endif + #define MAX_ERROR 4 static int errct; diff --git a/test/test46.c b/test/test46.c index 35b962c22..d64d5c849 100644 --- a/test/test46.c +++ b/test/test46.c @@ -97,7 +97,7 @@ void api_test() { * must have super user privileges. */ - int r, i, nogroups; + int i; gid_t *grouplist, *grouplist2; long ngroups_max; @@ -197,7 +197,7 @@ void group_test() { * the imaginary group, and readable, writable, and both by everyone else (2). */ - int r, i, round, test_result; + int i, round; gid_t *grouplist; long ngroups_max; #define ROUNDS 8 diff --git a/test/test47.c b/test/test47.c index 3461c818c..77ee58ae6 100644 --- a/test/test47.c +++ b/test/test47.c @@ -204,7 +204,7 @@ static void test_round_values(void) static void test_remainder_value(double x, double y) { int mode_old; - double r1, r2, z; + double r1, r2; assert(y != 0); diff --git a/test/test48.c b/test/test48.c index bbed6685d..8a79ebb16 100755 --- a/test/test48.c +++ b/test/test48.c @@ -6,7 +6,7 @@ #include #include -#define MAX_ERRORS 8 +#define MAX_ERRORS 3 static int errct; @@ -139,7 +139,9 @@ static void test_getnameinfo_err_nr( static void test_getaddrinfo( const char *nodename, + int nodename_numerical, const char *servname, + int servname_numerical, int passhints, int flags, int family, @@ -153,18 +155,22 @@ static void test_getaddrinfo( struct addrinfo hints; struct sockaddr_in *sockaddr_in; int ai_count_dgram, ai_count_stream, r; - + /* some parameters are only meaningful with hints */ assert(passhints || !flags); assert(passhints || family == AF_UNSPEC); assert(passhints || !socktype); + /* a combination of parameters don't make sense to test */ + if (nodename == NULL && servname == NULL) return; + if (nodename == NULL && (flags & AI_NUMERICHOST)) return; + if (servname == NULL && (flags & AI_NUMERICSERV)) return; + /* initialize hints */ memset(&hints, 0, sizeof(hints)); hints.ai_flags = flags; hints.ai_family = family; hints.ai_socktype = socktype; - hints.ai_family = family; /* perform query and test result */ ai = (struct addrinfo *) 0xDEADBEEF; @@ -217,30 +223,45 @@ static void test_getaddrinfo( ntohs(sockaddr_in->sin_port)); } - /* is canonical supplied? */ - if (exp_canonname && - (!ai_cur->ai_canonname || !*ai_cur->ai_canonname)) - test_getaddrinfo_err(7, - TEST_GETADDRINFO_ERR_PARAMS, - "(anything)", ai_cur->ai_canonname); + /* If a hostname is numeric, there can't be a canonical name. + * Instead, the returned canonname (if requested) will be + * identical to the supplied hostname */ + if (nodename != NULL && nodename_numerical && + (flags & AI_CANONNAME)) { + if (strncmp(ai_cur->ai_canonname, nodename, + strlen(nodename))) + test_getaddrinfo_err(11, + TEST_GETADDRINFO_ERR_PARAMS, + nodename, ai_cur->ai_canonname); + } else { + /* is canonical supplied? */ + if (exp_canonname && nodename && + (!ai_cur->ai_canonname || !*ai_cur->ai_canonname)) + test_getaddrinfo_err(7, + TEST_GETADDRINFO_ERR_PARAMS, + "(anything)", ai_cur->ai_canonname); - if (!exp_canonname && ai_cur->ai_canonname) - test_getaddrinfo_err(8, - TEST_GETADDRINFO_ERR_PARAMS, - NULL, ai_cur->ai_canonname); + if (!exp_canonname && ai_cur->ai_canonname) + test_getaddrinfo_err(8, + TEST_GETADDRINFO_ERR_PARAMS, + NULL, ai_cur->ai_canonname); + } /* move to next result */ ai_cur = ai_cur->ai_next; } - /* check number of results */ - if (ai_count_dgram != ((socktype == SOCK_STREAM) ? 0 : 1)) - test_getaddrinfo_err_nr(9, TEST_GETADDRINFO_ERR_PARAMS, + /* If socket type is non-zero, make sure we got what we wanted. Else + * any result is okay. */ + if (socktype) { + if (ai_count_dgram != ((socktype == SOCK_STREAM) ? 0 : 1)) + test_getaddrinfo_err_nr(9, TEST_GETADDRINFO_ERR_PARAMS, (socktype == SOCK_STREAM) ? 0 : 1, ai_count_dgram); - if (ai_count_stream != ((socktype == SOCK_DGRAM) ? 0 : 1)) - test_getaddrinfo_err_nr(10, TEST_GETADDRINFO_ERR_PARAMS, + if (ai_count_stream != ((socktype == SOCK_DGRAM) ? 0 : 1)) + test_getaddrinfo_err_nr(10, TEST_GETADDRINFO_ERR_PARAMS, (socktype == SOCK_DGRAM) ? 0 : 1, ai_count_stream); + } /* clean up */ freeaddrinfo(ai); @@ -308,18 +329,18 @@ static struct int need_network; int exp_result; } hosts[] = { - { NULL, 0x7f000001, 1, 1, 0, 0 }, - { "0.0.0.0", 0x00000000, 1, 0, 0, 0, }, - { "0.0.0.255", 0x000000ff, 1, 0, 0, 0, }, - { "0.0.255.0", 0x0000ff00, 1, 0, 0, 0, }, - { "0.255.0.0", 0x00ff0000, 1, 0, 0, 0, }, - { "255.0.0.0", 0xff000000, 1, 0, 0, 0, }, - { "127.0.0.1", 0x7f000001, 1, 0, 0, 0, }, - { "localhost", 0x7f000001, 0, 1, 0, 0, }, - { "minix3.org", 0x82251414, 0, 1, 1, 0, }, - { "", 0x00000000, 1, 0, 0, (1 << EAI_NONAME) }, - { "256.256.256.256", 0x00000000, 1, 0, 0, (1 << EAI_NONAME) }, - { "minix3.xxx", 0x00000000, 0, 0, 1, (1 << EAI_NONAME) }}; + { NULL, 0x7f000001, 1, 1, 0, 0 }, + { "0.0.0.0", 0x00000000, 1, 0, 0, 0 }, + { "0.0.0.255", 0x000000ff, 1, 0, 0, 0 }, + { "0.0.255.0", 0x0000ff00, 1, 0, 0, 0 }, + { "0.255.0.0", 0x00ff0000, 1, 0, 0, 0 }, + { "255.0.0.0", 0xff000000, 1, 0, 0, 0 }, + { "127.0.0.1", 0x7f000001, 1, 0, 0, 0 }, + { "localhost", 0x7f000001, 0, 1, 0, 0, }, + { "minix3.org", 0x82251414, 0, 1, 1, 0, }, + { "", 0x00000000, 1, 0, 0, (1< 0 && buflens[k] <= strlen(nodename)) - exp_results |= (1 << EAI_OVERFLOW); + exp_results |= (1 << EAI_OVERFLOW) | (1 << EAI_MEMORY); socktypemismatch = (flag_DGRAM && ports[j].socktype == SOCK_STREAM) || @@ -509,9 +542,9 @@ static void test_getnameinfo_all(void) servname = (flag_NUMERICSERV || socktypemismatch) ? ports[j].servnum : ports[j].servname; if (buflens[l] > 0 && buflens[l] <= strlen(servname)) - exp_results |= (1 << EAI_OVERFLOW); + exp_results |= (1 << EAI_OVERFLOW) | (1 << EAI_MEMORY); - if (flag_NAMEREQD && (!ipaddrs[i].havename | flag_NUMERICHOST) && buflens[k]) + if (flag_NAMEREQD && (!ipaddrs[i].havename || flag_NUMERICHOST) && buflens[k]) exp_results |= (1 << EAI_NONAME); /* with no reason for failure, we demand success */ @@ -533,7 +566,6 @@ static void test_getnameinfo_all(void) static int can_use_network(void) { - pid_t pid; int status; /* try to ping minix3.org */ @@ -557,7 +589,6 @@ int main(void) use_network = can_use_network(); if (!use_network) printf("Warning: no network\n"); - test_getaddrinfo_all(use_network); test_getnameinfo_all(); diff --git a/test/test5.c b/test/test5.c index 284820813..1de5c66aa 100644 --- a/test/test5.c +++ b/test/test5.c @@ -11,14 +11,14 @@ #include #define ITERATIONS 2 -#define MAX_ERROR 4 +#define MAX_ERROR 3 -int errct; int subtest; int zero[1024]; - int sigmap[5] = {9, 10, 11}; +#include "common.c" + _PROTOTYPE(int main, (int argc, char *argv[])); _PROTOTYPE(void test5a, (void)); _PROTOTYPE(void parent, (int childpid)); @@ -37,17 +37,6 @@ _PROTOTYPE(void funcalrm, (int s)); _PROTOTYPE(void test5h, (void)); _PROTOTYPE(void test5i, (void)); _PROTOTYPE(void ex, (void)); -_PROTOTYPE(void e, (int n)); -_PROTOTYPE(void quit, (void)); - -#ifdef _ANSI -void (*Signal(int _sig, void (*_func)(int)))(int); -#define SIG_ZERO ((void (*)(int))0) /* default signal handling */ -#else -sighandler_t Signal(); -/* void (*Signal()) (); */ -#define SIG_ZERO ((void (*)())0) /* default signal handling */ -#endif _VOLATILE int childsigs, parsigs, alarms; @@ -57,11 +46,7 @@ char *argv[]; { int i, m = 0x7777; - printf("Test 5 "); - fflush(stdout); /* have to flush for child's benefit */ - - system("rm -rf DIR_05; mkdir DIR_05"); - chdir("DIR_05"); + start(5); for (i = 0; i < ITERATIONS; i++) { if (m & 0001) test5a(); @@ -87,17 +72,17 @@ void test5a() for (zp = &zero[0]; zp < &zero[1024]; zp++) if (*zp != 0) flag = 1; if (flag) e(0); /* check if bss is cleared to 0 */ - if (Signal(1, func1) == SIG_ERR) e(1); - if (Signal(10, func10) < SIG_ZERO) e(2); + if (signal(1, func1) == SIG_ERR) e(1); + if (signal(10, func10) == SIG_ERR) e(2); parpid = getpid(); - if (childpid = fork()) { + if ((childpid = fork()) != 0) { if (childpid < 0) ex(); parent(childpid); } else { child(parpid); } - if (Signal(1, SIG_DFL) < SIG_ZERO) e(4); - if (Signal(10, SIG_DFL) < SIG_ZERO) e(5); + if (signal(1, SIG_DFL) == SIG_ERR) e(4); + if (signal(10, SIG_DFL) == SIG_ERR) e(5); } void parent(childpid) @@ -131,7 +116,7 @@ int parpid; void func1(s) int s; /* for ANSI */ { - if (Signal(1, func1) < SIG_ZERO) e(10); + if (signal(1, func1) == SIG_ERR) e(10); childsigs++; } @@ -143,7 +128,7 @@ int s; void func10(s) int s; /* for ANSI */ { - if (Signal(10, func10) < SIG_ZERO) e(11); + if (signal(10, func10) == SIG_ERR) e(11); parsigs++; } @@ -158,11 +143,11 @@ void test5b() int cpid, n, pid; subtest = 1; - if ((pid = fork())) { + if ((pid = fork()) != 0) { if (pid < 0) ex(); - if ((pid = fork())) { + if ((pid = fork()) != 0) { if (pid < 0) ex(); - if (cpid = fork()) { + if ((cpid = fork()) != 0) { if (cpid < 0) ex(); if (kill(cpid, 9) < 0) e(12); if (wait(&n) < 0) e(13); @@ -187,7 +172,7 @@ void test5c() /* Test exit status codes for processes killed by signals. */ subtest = 3; for (i = 0; i < 2; i++) { - if (pid = fork()) { + if ((pid = fork()) != 0) { if (pid < 0) ex(); sleep(2); /* wait for child to pause */ if (kill(pid, sigmap[i]) < 0) { @@ -213,7 +198,7 @@ void test5d() subtest = 4; alarms = 0; for (i = 0; i < 8; i++) { - Signal(SIGALRM, funcalrm); + signal(SIGALRM, funcalrm); alarm(1); pause(); if (alarms != i + 1) e(24); @@ -228,14 +213,14 @@ void test5e() int n, j; subtest = 5; - if (Signal(8, func8) < SIG_ZERO) e(25); - if (n = fork()) { + if (signal(8, func8) == SIG_ERR) e(25); + if ((n = fork()) != 0) { /* Parent must delay to give child a chance to pause. */ if (n < 0) ex(); sleep(1); if (kill(n, 8) < 0) e(26); if (wait(&n) < 0) e(27); - if (Signal(8, SIG_DFL) < SIG_ZERO) e(28); + if (signal(8, SIG_DFL) == SIG_ERR) e(28); } else { j = pause(); if (errno != EINTR && -errno != EINTR) e(29); @@ -279,11 +264,11 @@ void test5g() int n; subtest = 7; - Signal(11, func11); - Signal(11, SIG_IGN); + signal(11, func11); + signal(11, SIG_IGN); n = getpid(); if (kill(n, 11) != 0) e(1); - Signal(11, SIG_DFL); + signal(11, SIG_DFL); } void funcalrm(s) @@ -301,9 +286,9 @@ void test5h() subtest = 8; unlink("XXX.test5"); - if (Signal(8, func8) < SIG_ZERO) e(1); + if (signal(8, func8) == SIG_ERR) e(1); pipe(fd); - if (n = fork()) { + if ((n = fork()) != 0) { /* Parent must delay to give child a chance to pause. */ if (n < 0) ex(); while (access("XXX.test5", 0) != 0) /* just wait */ ; @@ -311,7 +296,7 @@ void test5h() unlink("XXX.test5"); if (kill(n, 8) < 0) e(2); if (wait(&n) < 0) e(3); - if (Signal(8, SIG_DFL) < SIG_ZERO) e(4); + if (signal(8, SIG_DFL) == SIG_ERR) e(4); if (close(fd[0]) != 0) e(5); if (close(fd[1]) != 0) e(6); } else { @@ -330,7 +315,7 @@ void test5i() pipe(fd); unlink("XXXxxxXXX"); - if ( (pid = fork())) { + if ((pid = fork()) != 0) { /* Parent */ /* Wait until child has started and has created the XXXxxxXXX file. */ while (access("XXXxxxXXX", 0) != 0) /* loop */ ; @@ -354,47 +339,3 @@ void ex() exit(1); } -void e(n) -int n; -{ - int err_num = errno; /* save errno in case printf clobbers it */ - - printf("Subtest %d, error %d errno=%d ", subtest, n, errno); - errno = err_num; /* restore errno, just in case */ - perror(""); - if (errct++ > MAX_ERROR) { - printf("Too many errors; test aborted\n"); - chdir(".."); - system("rm -rf DIR*"); - exit(1); - } -} - -#ifdef _ANSI -void (*Signal(int a, void (*b)(int)))(int) -#else -sighandler_t Signal(a, b) -int a; -void (*b)(); -#endif -{ - if (signal(a, (void (*) ()) b) == (void (*)()) -1) - return(SIG_ERR); - else - return(SIG_ZERO); -} - -void quit() -{ - - chdir(".."); - system("rm -rf DIR*"); - - if (errct == 0) { - printf("ok\n"); - exit(0); - } else { - printf("%d errors\n", errct); - exit(1); - } -} diff --git a/test/test50.c b/test/test50.c index d83c2ba2b..8aa0de986 100644 --- a/test/test50.c +++ b/test/test50.c @@ -53,7 +53,7 @@ int main(argc, argv) int argc; char *argv[]; { - int i, j, m = 0xFFFF; + int j, m = 0xFFFF; start(50); prepare(); @@ -109,7 +109,7 @@ int make_file(size) off_t size; { off_t off; - int i, fd, r; + int fd, r; if ((fd = open(TESTFILE, O_RDWR|O_CREAT|O_EXCL, 0600)) < 0) e(1001); @@ -476,7 +476,7 @@ void sub50g(osize, nsize) off_t osize; off_t nsize; { - int fd, r; + int fd; fd = make_file(osize); diff --git a/test/test52.c b/test/test52.c index 39090d67e..65986a1a5 100644 --- a/test/test52.c +++ b/test/test52.c @@ -89,7 +89,8 @@ void dead_child(int n) { int status; subtest = 4; - n = n; + + (void) n; /* Avoid warning about unused parameter */ if (wait(&status) == -1) err(1); diff --git a/test/test53.c b/test/test53.c index 337bacaed..ac2369382 100644 --- a/test/test53.c +++ b/test/test53.c @@ -20,7 +20,7 @@ static jmp_buf jmpbuf_SIGFPE, jmpbuf_main; static void err(int line) { /* print error information */ - printf("error line %d; i=0x%.8x%.8x; j=0x%.8x%.8x; k=0x%.8x%.8x\n", + printf("error line %d; i=0x%.8lx%.8lx; j=0x%.8lx%.8lx; k=0x%.8lx%.8lx\n", line, ex64hi(i), ex64lo(i), ex64hi(j), ex64lo(j), diff --git a/test/test54.c b/test/test54.c index ed9950d21..05094e2e0 100644 --- a/test/test54.c +++ b/test/test54.c @@ -19,27 +19,26 @@ void do_test(void) size_t size; ssize_t nwritten; ssize_t nread; - char *filename; + char *filename = "pwrite_test_XXXXXXX"; int i; subtest = 1; - if((filename = mktemp("pwrite_test_XXXXXXX")) == NULL) e(1); - if((fd = open(filename, O_CREAT|O_RDWR)) < 0) e(2); + if ((fd = mkstemp(filename)) < 0) e(1); size = 1 + rand() % 4096; off = rand(); - if((wbuf = malloc(sizeof(char)*size)) == NULL) e(3); + if((wbuf = malloc(sizeof(char)*size)) == NULL) e(2); for(i = 0; i < size; i++) { wbuf[i] = 1 + rand()%127; } - if((nwritten = pwrite(fd, wbuf, size, off)) < 0) e(4); - if((rbuf = malloc(sizeof(char)*nwritten)) == NULL) e(5); - if((nread = pread(fd, rbuf, nwritten, off)) < 0) e(6); - if(strncmp(rbuf, wbuf, nread) != 0) e(7); + if ((nwritten = pwrite(fd, wbuf, size, off)) < 0) e(3); + if ((rbuf = malloc(sizeof(char)*nwritten)) == NULL) e(4); + if ((nread = pread(fd, rbuf, nwritten, off)) < 0) e(5); + if (strncmp(rbuf, wbuf, nread) != 0) e(6); close(fd); free(wbuf); diff --git a/test/test55.c b/test/test55.c index 5dbbb0004..d309d390d 100644 --- a/test/test55.c +++ b/test/test55.c @@ -8,37 +8,31 @@ #define TRIALS 10 #define SIZE 65536 -#define TMPPATH "/usr/tmp/" +#define MAX_ERROR 3 -char *create_file(void) +int subtest; +char *filename = "statvfs_test_XXXXXX"; +#include "common.c" + +void create_file(void) { char buf[SIZE]={0}; char *p; ssize_t ntowrite, nwritten; int fd; - char *filename; - if((filename = mktemp(TMPPATH "statvfs_test_XXXXXXX")) == NULL) { - err(1, "mktemp failed"); - } - - if((fd = open(filename, O_CREAT|O_WRONLY)) < 0) { - err(1, "open failed"); - } + subtest = 2; + if ((fd = mkstemp(filename)) < 0) e(1); ntowrite = SIZE; p = &buf[0]; - while(ntowrite > 0) { - if((nwritten = write(fd, p, ntowrite)) < 0) { - err(1, "write failed"); - } + while (ntowrite > 0) { + if ((nwritten = write(fd, p, ntowrite)) < 0) e(2); p += nwritten; ntowrite -= nwritten; } - close(fd); - - return filename; + if (close(fd) < 0) e(3); } int main(int argc, char *argv[]) @@ -57,16 +51,11 @@ int main(int argc, char *argv[]) unsigned long f_namemax, f_namemax_new; int i; - printf("Test 55 "); - - for(i = 0; i < TRIALS; i++) { - int r; - char *filename; + start(55); - if(statvfs(TMPPATH, &stats) < 0) { - perror("statvfs failed"); - return 1; - } + subtest = 1; + for(i = 0; i < TRIALS; i++) { + if (statvfs(".", &stats) < 0) e(1); f_bsize = stats.f_bsize ; f_frsize = stats.f_frsize ; @@ -80,44 +69,38 @@ int main(int argc, char *argv[]) f_flag = stats.f_flag ; f_namemax = stats.f_namemax; - filename = create_file(); + create_file(); - r = statvfs(TMPPATH, &stats); - - unlink(filename); - - if(r < 0) { - perror("statvfs failed"); - return 1; - } + if (statvfs(".", &stats) < 0) e(2); + if (unlink(filename) < 0) e(3); f_bsize_new = stats.f_bsize ; - f_frsize_new = stats.f_frsize ; - f_blocks_new = stats.f_blocks ; - f_bfree_new = stats.f_bfree ; - f_bavail_new = stats.f_bavail ; - f_files_new = stats.f_files ; - f_ffree_new = stats.f_ffree ; - f_favail_new = stats.f_favail ; - f_fsid_new = stats.f_fsid ; - f_flag_new = stats.f_flag ; - f_namemax_new = stats.f_namemax; + f_frsize_new = stats.f_frsize ; + f_blocks_new = stats.f_blocks ; + f_bfree_new = stats.f_bfree ; + f_bavail_new = stats.f_bavail ; + f_files_new = stats.f_files ; + f_ffree_new = stats.f_ffree ; + f_favail_new = stats.f_favail ; + f_fsid_new = stats.f_fsid ; + f_flag_new = stats.f_flag ; + f_namemax_new = stats.f_namemax; - if ((f_bsize == f_bsize_new) && - (f_frsize == f_frsize_new) && - (f_blocks == f_blocks_new) && - (f_bfree > f_bfree_new) && - (f_bavail > f_bavail_new) && - (f_files == f_files_new) && - (f_ffree == f_ffree_new + 1) && - (f_favail == f_favail_new + 1) && - (f_fsid == f_fsid_new) && - (f_flag == f_flag_new) && - (f_namemax == f_namemax_new) ) { - printf("ok\n"); - return 0; + if (!((f_bsize == f_bsize_new) && + (f_frsize == f_frsize_new) && + (f_blocks == f_blocks_new) && + (f_bfree > f_bfree_new) && + (f_bavail > f_bavail_new) && + (f_files == f_files_new) && + (f_ffree == f_ffree_new + 1) && + (f_favail == f_favail_new + 1) && + (f_fsid == f_fsid_new) && + (f_flag == f_flag_new) && + (f_namemax == f_namemax_new))) { + e(4); } } - return 1; + quit(); + return(-1); } diff --git a/test/test56.c b/test/test56.c index 216d4409a..0d350c5e7 100644 --- a/test/test56.c +++ b/test/test56.c @@ -572,7 +572,6 @@ void test_bind(void) void test_listen(void) { - int sd; int rc; debug("entering test_listen()"); @@ -718,7 +717,6 @@ void test_sockopts(void) int rc; int sd; int option_value; - int option_value_orig; socklen_t option_len; debug("entering test_sockopts()"); @@ -984,7 +982,6 @@ void test_dup2(void) */ void test_xfer_server(pid_t pid) { - struct ucred credentials; socklen_t ucred_length; int i; int on; @@ -998,8 +995,6 @@ void test_xfer_server(pid_t pid) int client_sd; struct sockaddr_un addr; struct sockaddr_un client_addr; - uid_t euid; - gid_t egid; on = 1; status = 0; @@ -1203,8 +1198,6 @@ void test_xfer_client(void) int sd; int rc; char buf[BUFSIZE]; - uid_t uid; - gid_t gid; debug("[client] entering test_xfer_client()"); errct = 0; /* reset error count */ diff --git a/test/test6.c b/test/test6.c index 9e8ba5f16..f7817cb7c 100644 --- a/test/test6.c +++ b/test/test6.c @@ -10,42 +10,30 @@ #include #include -#define MAX_ERROR 4 +#define MAX_ERROR 3 -int errct; int subtest = 1; int zilch[5000]; -char curdir[PATH_MAX]; + +#include "common.c" _PROTOTYPE(int main, (int argc, char *argv [])); _PROTOTYPE(void test6a, (void)); _PROTOTYPE(void test6b, (void)); -_PROTOTYPE(void test6c, (void)); -_PROTOTYPE(void e, (int n)); -_PROTOTYPE(void quit, (void)); int main(argc, argv) int argc; char *argv[]; { - char buffer[PATH_MAX + 1]; int i, m = 0xFFFF; - sync(); - if (argc == 2) m = atoi(argv[1]); - printf("Test 6 "); - fflush(stdout); - - getcwd(curdir, PATH_MAX); - system("rm -rf DIR_06; mkdir DIR_06"); - chdir("DIR_06"); + start(6); for (i = 0; i < 70; i++) { if (m & 00001) test6a(); if (m & 00002) test6b(); - if (m & 00004) test6c(); } quit(); @@ -115,96 +103,3 @@ void test6b() kill(getpid(), SIGQUIT); } -void test6c() -{ -/* Test mknod, chdir, chmod, chown, access. */ - - int i, j; - struct stat s; - - subtest = 3; - if (getuid() != 0) return; - for (j = 0; j < 2; j++) { - umask(0); - - if (chdir("/") < 0) e(1); - if (mknod("dir", 040700, 0) < 0) e(2); - if (link("/", "/dir/..") < 0) e(3); - if (mknod("T3a", 0777, 0) < 0) e(4); - if (mknod("/dir/T3b", 0777, 0) < 0) e(5); - if (mknod("dir/T3c", 0777, 0) < 0) e(6); - if ((i = open("/dir/T3b", 0)) < 0) e(7); - if (close(i) < 0) e(8); - if ((i = open("dir/T3c", O_RDONLY)) < 0) e(9); - if (close(i) < 0) e(10); - if (chdir("dir") < 0) e(11); - if ((i = open("T3b", 0)) < 0) e(12); - if (close(i) < 0) e(13); - if ((i = open("../T3a", O_RDONLY)) < 0) e(14); - if (close(i) < 0) e(15); - if ((i = open("../dir/../dir/../dir/../dir/../dir/T3c", O_RDONLY)) < 0) - e(16); - if (close(i) < 0) e(17); - - if (chmod("../dir/../dir/../dir/../dir/../T3a", 0123) < 0) e(18); - if (stat("../dir/../dir/../dir/../T3a", &s) < 0) e(19); - if ((s.st_mode & 077777) != 0123) e(20); - if (chmod("../dir/../dir/../T3a", 0456) < 0) e(21); - if (stat("../T3a", &s) < 0) e(22); - if ((s.st_mode & 077777) != 0456) e(23); - if (chown("../dir/../dir/../T3a", 20, 30) < 0) e(24); - if (stat("../T3a", &s) < 0) e(25); - if (s.st_uid != 20) e(26); - if (s.st_gid != 30) e(27); - - if ((i = open("/T3c", O_RDONLY)) >= 0) e(28); - if ((i = open("/T3a", O_RDONLY)) < 0) e(29); - if (close(i) < 0) e(30); - - if (access("/T3a", 4) < 0) e(31); - if (access("/dir/T3b", 4) < 0) e(32); - if (access("/dir/T3d", 4) >= 0) e(33); - - if (unlink("T3b") < 0) e(34); - if (unlink("T3c") < 0) e(35); - if (unlink("..") < 0) e(36); - if (chdir("/") < 0) e(37); - if (unlink("dir") < 0) e(38); - if (unlink("/T3a") < 0) e(39); - } - -} - -void e(n) -int n; -{ - - int err_num = errno; /* save errno in case printf clobbers it */ - - printf("Subtest %d, error %d errno=%d ", subtest, n, errno); - errno = err_num; /* restore errno, just in case */ - perror(""); - if (errct++ > MAX_ERROR) { - printf("Too many errors; test aborted\n"); - chdir(".."); - system("rm -rf DIR*"); - exit(1); - } -} - -void quit() -{ - - chdir(".."); - system("rm -rf DIR*"); - - chdir(curdir); - system("rm -rf DIR*"); - if (errct == 0) { - printf("ok\n"); - exit(0); - } else { - printf("%d errors\n", errct); - exit(1); - } -} diff --git a/test/test9.c b/test/test9.c index 932825590..2709e72ed 100644 --- a/test/test9.c +++ b/test/test9.c @@ -144,9 +144,10 @@ jmp_buf env; char * addr() { - char a; + char a, *ret; - return &a; + ret = &a; + return(ret); } void garbage() diff --git a/usr.bin/mkimage/mkimage.c b/usr.bin/mkimage/mkimage.c index f89d561c8..e20031a3d 100644 --- a/usr.bin/mkimage/mkimage.c +++ b/usr.bin/mkimage/mkimage.c @@ -80,7 +80,7 @@ int main(int argc, char **argv) { int i, ch; - GElf_Addr startaddr, endaddr; + GElf_Addr startaddr; startaddr = BOOTPROG_LOAD_START;