Adjust the size passed to readlink so that the null termination

falls within the range of the path variable.

Cribbed from the latest NetBSD source.

Obtained from:	provos@NetBSD.org
This commit is contained in:
Doug Barton 2002-10-25 07:26:36 +00:00
parent de4723f6e8
commit 7d5b77ef5f

View File

@ -1,5 +1,3 @@
/* $NetBSD: stat.c,v 1.6 2002/07/09 21:25:00 atatat Exp $ */
/*
* Copyright (c) 2002 The NetBSD Foundation, Inc.
* All rights reserved.
@ -38,7 +36,7 @@
#if 0
#ifndef lint
__RCSID("$NetBSD: stat.c,v 1.8 2002/08/13 20:15:06 atatat Exp $");
__RCSID("$NetBSD: stat.c,v 1.9 2002/10/19 20:33:19 provos Exp $");
#endif
#endif
@ -688,7 +686,7 @@ format1(const struct stat *st,
data = 0;
if (S_ISLNK(st->st_mode)) {
snprintf(path, sizeof(path), " -> ");
l = readlink(file, path + 4, sizeof(path) - 4);
l = readlink(file, path + 4, sizeof(path) - 4 - 1);
if (l == -1) {
linkfail = 1;
l = 0;