From bd9ffde61a27945abf0498b5c562f9bf0dcc6419 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 6 May 2013 15:19:14 -0700 Subject: Move ptsname_r_chk to login/ subdir. --- login/Makefile | 3 ++- login/Versions | 3 +++ login/ptsname_r_chk.c | 28 ++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 login/ptsname_r_chk.c (limited to 'login') diff --git a/login/Makefile b/login/Makefile index 4b057ec927..fa5aa71381 100644 --- a/login/Makefile +++ b/login/Makefile @@ -25,7 +25,8 @@ headers := utmp.h bits/utmp.h lastlog.h pty.h routines := getlogin getlogin_r setlogin \ getutent getutent_r getutid getutline getutid_r getutline_r \ - utmp_file utmpname updwtmp getpt grantpt unlockpt ptsname + utmp_file utmpname updwtmp getpt grantpt unlockpt ptsname \ + ptsname_r_chk CFLAGS-grantpt.c = -DLIBEXECDIR='"$(libexecdir)"' diff --git a/login/Versions b/login/Versions index 0c9e75a7ef..f4df7183d5 100644 --- a/login/Versions +++ b/login/Versions @@ -41,6 +41,9 @@ libc { # p* posix_openpt; } + GLIBC_2.4 { + __ptsname_r_chk; + } } libutil { diff --git a/login/ptsname_r_chk.c b/login/ptsname_r_chk.c new file mode 100644 index 0000000000..7e039acb74 --- /dev/null +++ b/login/ptsname_r_chk.c @@ -0,0 +1,28 @@ +/* Copyright (C) 2005-2013 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include + + +int +__ptsname_r_chk (int fd, char *buf, size_t buflen, size_t nreal) +{ + if (buflen > nreal) + __chk_fail (); + + return __ptsname_r (fd, buf, buflen); +} -- cgit v1.2.3