diff options
| author | christos <christos@NetBSD.org> | 1997-10-16 23:54:40 +0000 |
|---|---|---|
| committer | christos <christos@NetBSD.org> | 1997-10-16 23:54:40 +0000 |
| commit | 79acd83ca56e6f9b40fb75bfd95ceb7b2a208a51 (patch) | |
| tree | 1b62ac416d7939f3ec9b298feef2ddf8194a2bc2 /sys/compat/linux/common/linux_file.c | |
| parent | 7e8c979fa9758b5255d44dcb5add8cccea505057 (diff) | |
check for st_nlink overflow
Diffstat (limited to 'sys/compat/linux/common/linux_file.c')
| -rw-r--r-- | sys/compat/linux/common/linux_file.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/compat/linux/common/linux_file.c b/sys/compat/linux/common/linux_file.c index 5f7bd8ceefe..0e45c8fa113 100644 --- a/sys/compat/linux/common/linux_file.c +++ b/sys/compat/linux/common/linux_file.c @@ -1,4 +1,4 @@ -/* $NetBSD: linux_file.c,v 1.18 1997/09/05 01:49:12 kleink Exp $ */ +/* $NetBSD: linux_file.c,v 1.19 1997/10/16 23:54:40 christos Exp $ */ /* * Copyright (c) 1995 Frank van der Linden @@ -444,8 +444,11 @@ bsd_to_linux_stat(bsp, lsp) lsp->lst_dev = bsp->st_dev; lsp->lst_ino = bsp->st_ino; - lsp->lst_mode = bsp->st_mode; - lsp->lst_nlink = bsp->st_nlink; + lsp->lst_mode = (linux_mode_t)bsp->st_mode; + if (bsp->st_nlink >= (1 << 15)) + lsp->lst_nlink = (1 << 15) - 1; + else + lsp->lst_nlink = (linux_nlink_t)bsp->st_nlink; lsp->lst_uid = bsp->st_uid; lsp->lst_gid = bsp->st_gid; lsp->lst_rdev = linux_fakedev(bsp->st_rdev); |
