getsockopt may return garbage for parameters < sizeof(int)
authorMichael Gran <spk121@yahoo.com>
Wed, 30 Dec 2020 23:16:02 +0000 (15:16 -0800)
committerMichael Gran <spk121@yahoo.com>
Fri, 22 Jan 2021 03:35:15 +0000 (19:35 -0800)
Uninitialized variable.

* libguile/socket.c (scm_getsockopt): zeroize arguments before use

libguile/socket.c

index 64354f1f1a838f516003efdaf7378799ffe962d3..8af6f57bf277c709cc29b3898df14967a79dccb7 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright 1996-1998,2000-2007,2009,2011-2015,2018
+/* Copyright 1996-1998,2000-2007,2009,2011-2015,2018,2021
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -493,6 +493,7 @@ SCM_DEFINE (scm_getsockopt, "getsockopt", 3, 0, 0,
   int ilevel;
   int ioptname;
 
+  memset (&optval, 0, optlen);
   sock = SCM_COERCE_OUTPORT (sock);
   SCM_VALIDATE_OPFPORT (1, sock);
   ilevel = scm_to_int (level);