aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2006-04-02 17:59:59 +0000
committerUlrich Drepper <drepper@redhat.com>2006-04-02 17:59:59 +0000
commit6c7a57538a284d495e42c9e89e6a3248b41708ce (patch)
tree29f404e9a176e688905ea0c109bc92ebfc24c227
parent7cd67fd89e7e0c4184508399d46490100ff29419 (diff)
downloadglibc-6c7a57538a284d495e42c9e89e6a3248b41708ce.tar
glibc-6c7a57538a284d495e42c9e89e6a3248b41708ce.tar.gz
glibc-6c7a57538a284d495e42c9e89e6a3248b41708ce.tar.bz2
glibc-6c7a57538a284d495e42c9e89e6a3248b41708ce.zip
[BZ #2418]
2006-04-02 Ulrich Drepper <drepper@redhat.com> [BZ #2418] * sysdeps/unix/sysv/linux/bits/socket.h: Use larger of PATH_MAX and page size when allocating buffer.
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket.h12
-rw-r--r--sysdeps/unix/sysv/linux/getcwd.c2
3 files changed, 16 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 22ea01d2af..c34f84a353 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-04-02 Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #2418]
+ * sysdeps/unix/sysv/linux/bits/socket.h: Use larger of PATH_MAX and
+ page size when allocating buffer.
+
2006-04-01 Ulrich Drepper <drepper@redhat.com>
[BZ #2415]
diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h
index 77e9b83c92..356a2ece74 100644
--- a/sysdeps/unix/sysv/linux/bits/socket.h
+++ b/sysdeps/unix/sysv/linux/bits/socket.h
@@ -1,5 +1,5 @@
/* System-specific socket constants and types. Linux version.
- Copyright (C) 1991,1992,1994-2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1991,1992,1994-2001,2004,2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -221,7 +221,10 @@ struct msghdr
size_t msg_iovlen; /* Number of elements in the vector. */
void *msg_control; /* Ancillary data (eg BSD filedesc passing). */
- size_t msg_controllen; /* Ancillary data buffer length. */
+ size_t msg_controllen; /* Ancillary data buffer length.
+ !! The type should be socklen_t but the
+ definition of the kernel is incompatible
+ with this. */
int msg_flags; /* Flags on received message. */
};
@@ -230,7 +233,10 @@ struct msghdr
struct cmsghdr
{
size_t cmsg_len; /* Length of data in cmsg_data plus length
- of cmsghdr structure. */
+ of cmsghdr structure.
+ !! The type should be socklen_t but the
+ definition of the kernel is incompatible
+ with this. */
int cmsg_level; /* Originating protocol. */
int cmsg_type; /* Protocol specific type. */
#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
diff --git a/sysdeps/unix/sysv/linux/getcwd.c b/sysdeps/unix/sysv/linux/getcwd.c
index 1a308ca38f..911d85f43d 100644
--- a/sysdeps/unix/sysv/linux/getcwd.c
+++ b/sysdeps/unix/sysv/linux/getcwd.c
@@ -87,7 +87,7 @@ __getcwd (char *buf, size_t size)
return NULL;
}
- alloc_size = PATH_MAX;
+ alloc_size = MAX (PATH_MAX, __getpagesize ());
}
if (buf == NULL)