summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2007-01-28 07:26:32 +0000
committerMike Frysinger <vapier@gentoo.org>2007-01-28 07:26:32 +0000
commit954bc85a123f00d091275ca42c3a9f164e38a612 (patch)
treef6c1f12c1aeeb6b26e5ed0b5cc9dafb1d76d00cd
parent0c6f9e780d85992f4a7140180f12f0fc98e31ade (diff)
make sure we clear out the buffer so that random garbage on the stack doesnt screw us up
-rw-r--r--libc/sysdeps/linux/common/xstatconv.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libc/sysdeps/linux/common/xstatconv.c b/libc/sysdeps/linux/common/xstatconv.c
index 967844c93..c4dc98527 100644
--- a/libc/sysdeps/linux/common/xstatconv.c
+++ b/libc/sysdeps/linux/common/xstatconv.c
@@ -15,8 +15,8 @@
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA.
-
+ 02111-1307 USA.
+
Modified for uClibc by Erik Andersen <andersen@codepoet.org>
*/
@@ -24,9 +24,12 @@
#include <sys/stat.h>
#include "xstatconv.h"
+libc_hidden_proto(memset)
+
void attribute_hidden __xstat_conv(struct kernel_stat *kbuf, struct stat *buf)
{
/* Convert to current kernel version of `struct stat'. */
+ memset(buf, 0x00, sizeof(*buf));
buf->st_dev = kbuf->st_dev;
buf->st_ino = kbuf->st_ino;
buf->st_mode = kbuf->st_mode;
@@ -52,6 +55,7 @@ void attribute_hidden __xstat_conv(struct kernel_stat *kbuf, struct stat *buf)
void attribute_hidden __xstat64_conv(struct kernel_stat64 *kbuf, struct stat64 *buf)
{
/* Convert to current kernel version of `struct stat64'. */
+ memset(buf, 0x00, sizeof(*buf));
buf->st_dev = kbuf->st_dev;
buf->st_ino = kbuf->st_ino;
# ifdef _HAVE_STAT64___ST_INO