mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 11:40:18 +02:00
Fix getsockopt/setsockopt handling of SO_SNDBUF/SO_RCVBUF options.
Reported by Park SungMin <byulparan_eng@icloud.com> in <https://lists.gnu.org/archive/html/guile-user/2015-11/msg00026.html>. * libguile/socket.c (scm_getsockopt, scm_setsockopt): Remove code that incorrectly assumed that the argument for SO_SNDBUF and SO_RCVBUF options was of type 'size_t'. Both the Linux and POSIX documentation indicates that the argument is of type 'int', as is the case for most options.
This commit is contained in:
parent
3e0605458a
commit
e94a42c7f0
1 changed files with 2 additions and 28 deletions
|
@ -1,5 +1,5 @@
|
|||
/* Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
* 2006, 2007, 2009, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1996-1998, 2000-2007, 2009, 2011-2015
|
||||
* Free Software Foundation, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public License
|
||||
|
@ -508,19 +508,7 @@ SCM_DEFINE (scm_getsockopt, "getsockopt", 3, 0, 0,
|
|||
scm_from_int (0));
|
||||
#endif
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if (0
|
||||
#ifdef SO_SNDBUF
|
||||
|| ioptname == SO_SNDBUF
|
||||
#endif
|
||||
#ifdef SO_RCVBUF
|
||||
|| ioptname == SO_RCVBUF
|
||||
#endif
|
||||
)
|
||||
{
|
||||
return scm_from_size_t (*(size_t *) &optval);
|
||||
}
|
||||
}
|
||||
return scm_from_int (*(int *) &optval);
|
||||
}
|
||||
|
@ -649,21 +637,7 @@ SCM_DEFINE (scm_setsockopt, "setsockopt", 4, 0, 0,
|
|||
optval = &opt_int;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if (0
|
||||
#ifdef SO_SNDBUF
|
||||
|| ioptname == SO_SNDBUF
|
||||
#endif
|
||||
#ifdef SO_RCVBUF
|
||||
|| ioptname == SO_RCVBUF
|
||||
#endif
|
||||
)
|
||||
{
|
||||
opt_int = scm_to_int (value);
|
||||
optlen = sizeof (size_t);
|
||||
optval = &opt_int;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_STRUCT_IP_MREQ
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue