From 6c7a57538a284d495e42c9e89e6a3248b41708ce Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 2 Apr 2006 17:59:59 +0000 Subject: [BZ #2418] 2006-04-02 Ulrich Drepper [BZ #2418] * sysdeps/unix/sysv/linux/bits/socket.h: Use larger of PATH_MAX and page size when allocating buffer. --- sysdeps/unix/sysv/linux/bits/socket.h | 12 +++++++++--- sysdeps/unix/sysv/linux/getcwd.c | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'sysdeps/unix/sysv') 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) -- cgit 1.4.1