Page MenuHomeFreeBSD

D26534.diff
No OneTemporary

D26534.diff

Index: head/lib/libc/gen/auxv.c
===================================================================
--- head/lib/libc/gen/auxv.c
+++ head/lib/libc/gen/auxv.c
@@ -67,7 +67,8 @@
}
static pthread_once_t aux_once = PTHREAD_ONCE_INIT;
-static int pagesize, osreldate, canary_len, ncpus, pagesizes_len, bsdflags;
+static int pagesize, osreldate, ncpus, bsdflags;
+static size_t canary_len, pagesizes_len;
static int hwcap_present, hwcap2_present;
static char *canary, *pagesizes, *execpath;
static void *ps_strings, *timekeep;
@@ -245,16 +246,21 @@
_elf_aux_info(int aux, void *buf, int buflen)
{
int res;
+ size_t buflen_;
__init_elf_aux_vector();
if (__elf_aux_vector == NULL)
return (ENOSYS);
_once(&aux_once, init_aux);
+ if (buflen < 0)
+ return (EINVAL);
+ buflen_ = (size_t)buflen;
+
switch (aux) {
case AT_CANARY:
- if (canary != NULL && canary_len >= buflen) {
- memcpy(buf, canary, buflen);
+ if (canary != NULL && canary_len >= buflen_) {
+ memcpy(buf, canary, buflen_);
memset(canary, 0, canary_len);
canary = NULL;
res = 0;
@@ -267,35 +273,35 @@
else if (buf == NULL)
res = EINVAL;
else {
- if (strlcpy(buf, execpath, buflen) >= buflen)
+ if (strlcpy(buf, execpath, buflen_) >= buflen_)
res = EINVAL;
else
res = 0;
}
break;
case AT_HWCAP:
- if (hwcap_present && buflen == sizeof(u_long)) {
+ if (hwcap_present && buflen_ == sizeof(u_long)) {
*(u_long *)buf = hwcap;
res = 0;
} else
res = ENOENT;
break;
case AT_HWCAP2:
- if (hwcap2_present && buflen == sizeof(u_long)) {
+ if (hwcap2_present && buflen_ == sizeof(u_long)) {
*(u_long *)buf = hwcap2;
res = 0;
} else
res = ENOENT;
break;
case AT_PAGESIZES:
- if (pagesizes != NULL && pagesizes_len >= buflen) {
- memcpy(buf, pagesizes, buflen);
+ if (pagesizes != NULL && pagesizes_len >= buflen_) {
+ memcpy(buf, pagesizes, buflen_);
res = 0;
} else
res = ENOENT;
break;
case AT_PAGESZ:
- if (buflen == sizeof(int)) {
+ if (buflen_ == sizeof(int)) {
if (pagesize != 0) {
*(int *)buf = pagesize;
res = 0;
@@ -305,7 +311,7 @@
res = EINVAL;
break;
case AT_OSRELDATE:
- if (buflen == sizeof(int)) {
+ if (buflen_ == sizeof(int)) {
if (osreldate != 0) {
*(int *)buf = osreldate;
res = 0;
@@ -315,7 +321,7 @@
res = EINVAL;
break;
case AT_NCPUS:
- if (buflen == sizeof(int)) {
+ if (buflen_ == sizeof(int)) {
if (ncpus != 0) {
*(int *)buf = ncpus;
res = 0;
@@ -325,7 +331,7 @@
res = EINVAL;
break;
case AT_TIMEKEEP:
- if (buflen == sizeof(void *)) {
+ if (buflen_ == sizeof(void *)) {
if (timekeep != NULL) {
*(void **)buf = timekeep;
res = 0;
@@ -335,14 +341,14 @@
res = EINVAL;
break;
case AT_BSDFLAGS:
- if (buflen == sizeof(int)) {
+ if (buflen_ == sizeof(int)) {
*(int *)buf = bsdflags;
res = 0;
} else
res = EINVAL;
break;
case AT_PS_STRINGS:
- if (buflen == sizeof(void *)) {
+ if (buflen_ == sizeof(void *)) {
if (ps_strings != NULL) {
*(void **)buf = ps_strings;
res = 0;
Index: head/lib/libc/gen/basename_compat.c
===================================================================
--- head/lib/libc/gen/basename_compat.c
+++ head/lib/libc/gen/basename_compat.c
@@ -25,6 +25,9 @@
#include <string.h>
#include <sys/param.h>
+char * __freebsd11_basename_r(const char *path, char *bname);
+char * __freebsd11_basename(char *path);
+
char *
__freebsd11_basename_r(const char *path, char *bname)
{
Index: head/lib/libc/gen/crypt.c
===================================================================
--- head/lib/libc/gen/crypt.c
+++ head/lib/libc/gen/crypt.c
@@ -47,6 +47,11 @@
* encryption, make sure you've got libcrypt.a around.
*/
+int __freebsd11_des_setkey(const char *key);
+int __freebsd11_des_cipher(const char *in, char *out, long salt, int num_iter);
+int __freebsd11_setkey(const char *key);
+int __freebsd11_encrypt(char *block, int flag);
+
/* ARGSUSED */
int
__freebsd11_des_setkey(const char *key __unused)
Index: head/lib/libc/gen/dirname_compat.c
===================================================================
--- head/lib/libc/gen/dirname_compat.c
+++ head/lib/libc/gen/dirname_compat.c
@@ -25,6 +25,8 @@
#include <string.h>
#include <sys/param.h>
+char * __freebsd11_dirname(char *path);
+
char *
__freebsd11_dirname(char *path)
{
Index: head/lib/libc/gen/fts-compat.c
===================================================================
--- head/lib/libc/gen/fts-compat.c
+++ head/lib/libc/gen/fts-compat.c
@@ -633,9 +633,8 @@
FTSENT *cur, *tail;
DIR *dirp;
void *oldaddr;
- size_t dnamlen;
int cderrno, descend, len, level, maxlen, nlinks, oflag, saved_errno,
- nostat, doadjust;
+ nostat, doadjust, dnamlen;
char *cp;
/* Set current node pointer. */
@@ -745,7 +744,7 @@
if (!ISSET(FTS_SEEDOT) && ISDOT(dp->d_name))
continue;
- if ((p = fts_alloc(sp, dp->d_name, (int)dnamlen)) == NULL)
+ if ((p = fts_alloc(sp, dp->d_name, dnamlen)) == NULL)
goto mem1;
if (dnamlen >= maxlen) { /* include space for NUL */
oldaddr = sp->fts_path;
Index: head/lib/libc/gen/ftw-compat11.c
===================================================================
--- head/lib/libc/gen/ftw-compat11.c
+++ head/lib/libc/gen/ftw-compat11.c
@@ -33,6 +33,9 @@
#include "fts-compat11.h"
+int freebsd11_ftw(const char *path, int (*fn)(const char *,
+ const struct freebsd11_stat *, int), int nfds);
+
int
freebsd11_ftw(const char *path,
int (*fn)(const char *, const struct freebsd11_stat *, int), int nfds)
Index: head/lib/libc/gen/getentropy.c
===================================================================
--- head/lib/libc/gen/getentropy.c
+++ head/lib/libc/gen/getentropy.c
@@ -37,6 +37,7 @@
#include <signal.h>
#include <stdbool.h>
#include <stdlib.h>
+#include <unistd.h>
#include "libc_private.h"

File Metadata

Mime Type
text/plain
Expires
Thu, Nov 7, 8:43 PM (22 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14520401
Default Alt Text
D26534.diff (5 KB)

Event Timeline