diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2015-01-26 11:22:42 -0600 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2015-01-26 11:22:42 -0600 |
commit | f03fbbb009c0df52d363719a592e2ac33577d9a6 (patch) | |
tree | 01671bcc5099ef304faf5ae86d58bbf32f9d0b7c /libc | |
parent | 97dc8cb71d96a4bbfda0aa51740433d5da825b6a (diff) | |
parent | 92de8a5f6ffb1ff9f7183fd08d872aa098b75ae2 (diff) |
merge upstream changes
Diffstat (limited to 'libc')
-rw-r--r-- | libc/misc/dirent/opendir.c | 2 | ||||
-rw-r--r-- | libc/stdlib/_atexit.c | 2 | ||||
-rw-r--r-- | libc/stdlib/malloc-simple/alloc.c | 4 | ||||
-rw-r--r-- | libc/stdlib/malloc-standard/malloc.c | 2 | ||||
-rw-r--r-- | libc/stdlib/malloc-standard/malloc.h | 2 | ||||
-rw-r--r-- | libc/stdlib/setenv.c | 11 | ||||
-rw-r--r-- | libc/stdlib/unix_grantpt.c | 2 | ||||
-rw-r--r-- | libc/string/_collate.c | 4 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/mknod.c | 2 | ||||
-rw-r--r-- | libc/sysdeps/linux/common/sync_file_range.c | 5 |
10 files changed, 23 insertions, 13 deletions
diff --git a/libc/misc/dirent/opendir.c b/libc/misc/dirent/opendir.c index 66a5cc9e9..8af00f88c 100644 --- a/libc/misc/dirent/opendir.c +++ b/libc/misc/dirent/opendir.c @@ -110,7 +110,7 @@ DIR *opendir(const char *name) if (!ptr) { close_not_cancel_no_status(fd); - __set_errno(ENOMEM); + /* __set_errno(ENOMEM); */ } return ptr; } diff --git a/libc/stdlib/_atexit.c b/libc/stdlib/_atexit.c index ef6772fb5..3faa9f05f 100644 --- a/libc/stdlib/_atexit.c +++ b/libc/stdlib/_atexit.c @@ -257,7 +257,7 @@ struct exit_function attribute_hidden *__new_exitfn(void) efp = realloc(__exit_function_table, (__exit_slots+20)*sizeof(struct exit_function)); if (efp == NULL) { - __set_errno(ENOMEM); + /* __set_errno(ENOMEM); */ goto DONE; } __exit_function_table = efp; diff --git a/libc/stdlib/malloc-simple/alloc.c b/libc/stdlib/malloc-simple/alloc.c index 14f384632..a3c068a5b 100644 --- a/libc/stdlib/malloc-simple/alloc.c +++ b/libc/stdlib/malloc-simple/alloc.c @@ -42,8 +42,10 @@ void *malloc(size_t size) result = mmap((void *) 0, size + sizeof(size_t), PROT_READ | PROT_WRITE, MMAP_FLAGS, 0, 0); - if (result == MAP_FAILED) + if (result == MAP_FAILED) { + __set_errno(ENOMEM); return 0; + } * (size_t *) result = size; return(result + sizeof(size_t)); } diff --git a/libc/stdlib/malloc-standard/malloc.c b/libc/stdlib/malloc-standard/malloc.c index 3253ebda6..2abb5bbdd 100644 --- a/libc/stdlib/malloc-standard/malloc.c +++ b/libc/stdlib/malloc-standard/malloc.c @@ -744,7 +744,7 @@ static void* __malloc_alloc(size_t nb, mstate av) } /* catch all failure paths */ - errno = ENOMEM; + __set_errno(ENOMEM); return 0; } diff --git a/libc/stdlib/malloc-standard/malloc.h b/libc/stdlib/malloc-standard/malloc.h index d945627c6..1a4cc5a62 100644 --- a/libc/stdlib/malloc-standard/malloc.h +++ b/libc/stdlib/malloc-standard/malloc.h @@ -512,7 +512,7 @@ nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ #define checked_request2size(req, sz) \ if (REQUEST_OUT_OF_RANGE(req)) { \ - errno = ENOMEM; \ + __set_errno(ENOMEM); \ return 0; \ } \ (sz) = request2size(req); diff --git a/libc/stdlib/setenv.c b/libc/stdlib/setenv.c index 00e3f3d65..ecc302536 100644 --- a/libc/stdlib/setenv.c +++ b/libc/stdlib/setenv.c @@ -41,7 +41,7 @@ static char **last_environ; to reuse values once generated for a `setenv' call since we can never free the strings. [in uclibc, we do not] */ static int __add_to_environ(const char *name, const char *value, - int replace) + int replace) { register char **ep; register size_t size; @@ -76,7 +76,7 @@ static int __add_to_environ(const char *name, const char *value, /* We allocated this space; we can extend it. */ new_environ = realloc(last_environ, (size + 2) * sizeof(char *)); if (new_environ == NULL) { - __set_errno(ENOMEM); + /* __set_errno(ENOMEM); */ goto DONE; } if (__environ != last_environ) { @@ -97,7 +97,7 @@ static int __add_to_environ(const char *name, const char *value, var_val = malloc(namelen + 1 + vallen); if (var_val == NULL) { - __set_errno(ENOMEM); + /* __set_errno(ENOMEM); */ goto DONE; } memcpy(var_val, name, namelen); @@ -116,6 +116,11 @@ static int __add_to_environ(const char *name, const char *value, int setenv(const char *name, const char *value, int replace) { + if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) { + __set_errno(EINVAL); + return -1; + } + /* NB: setenv("VAR", NULL, 1) inserts "VAR=" string */ return __add_to_environ(name, value ? value : "", replace); } diff --git a/libc/stdlib/unix_grantpt.c b/libc/stdlib/unix_grantpt.c index 5dbb7f52d..66c18c0ed 100644 --- a/libc/stdlib/unix_grantpt.c +++ b/libc/stdlib/unix_grantpt.c @@ -68,7 +68,7 @@ pts_name (int fd, char **pts, size_t buf_len) if (! new_buf) { rv = -1; - errno = ENOMEM; + /* __set_errno(ENOMEM); */ break; } buf = new_buf; diff --git a/libc/string/_collate.c b/libc/string/_collate.c index 2ebfb9317..93501b85e 100644 --- a/libc/string/_collate.c +++ b/libc/string/_collate.c @@ -367,7 +367,7 @@ static void next_weight(col_state_t *cs, int pass __LOCALE_PARAM ) if (cs->back_buf == cs->ibb) { /* was using internal buffer */ cs->bp = malloc(cs->bb_size + 128); if (!cs->bp) { - __set_errno(ENOMEM); + /* __set_errno(ENOMEM); */ #ifdef __UCLIBC_MJN3_ONLY__ #warning what to do here? #endif @@ -379,7 +379,7 @@ static void next_weight(col_state_t *cs, int pass __LOCALE_PARAM ) } else { cs->bp = realloc(cs->back_buf, cs->bb_size + 128); if (!cs->bp) { - __set_errno(ENOMEM); + /* __set_errno(ENOMEM); */ #ifdef __UCLIBC_MJN3_ONLY__ #warning what to do here? #endif diff --git a/libc/sysdeps/linux/common/mknod.c b/libc/sysdeps/linux/common/mknod.c index 794e19f57..e0c54e6e3 100644 --- a/libc/sysdeps/linux/common/mknod.c +++ b/libc/sysdeps/linux/common/mknod.c @@ -25,7 +25,7 @@ int mknod(const char *path, mode_t mode, dev_t dev) k_dev = (dev) & ((1ULL << 32) - 1); if (k_dev != dev) { - __set_errno (EINVAL); + __set_errno(EINVAL); return -1; } return INLINE_SYSCALL(mknod, 3, path, mode, (unsigned int)k_dev); diff --git a/libc/sysdeps/linux/common/sync_file_range.c b/libc/sysdeps/linux/common/sync_file_range.c index 8d4ed9210..6cd7e94d6 100644 --- a/libc/sysdeps/linux/common/sync_file_range.c +++ b/libc/sysdeps/linux/common/sync_file_range.c @@ -23,10 +23,13 @@ static int __NC(sync_file_range)(int fd, off64_t offset, off64_t nbytes, unsigned int flags) { # if defined __powerpc__ && __WORDSIZE == 64 - return INLINE_SYSCALL(sync_file_range, 4, fd, offset, nbytes, flags); + return INLINE_SYSCALL(sync_file_range, 4, fd, flags, offset, nbytes); # elif defined __mips__ && _MIPS_SIM == _ABIO32 return INLINE_SYSCALL(sync_file_range, 7, fd, 0, OFF64_HI_LO(offset), OFF64_HI_LO(nbytes), flags); +# elif defined __NR_sync_file_range2 + return INLINE_SYSCALL(sync_file_range, 6, fd, flags, + OFF64_HI_LO(offset), OFF64_HI_LO(nbytes)); # else return INLINE_SYSCALL(sync_file_range, 6, fd, OFF64_HI_LO(offset), OFF64_HI_LO(nbytes), flags); |