This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Appended to the mail you'll find a program that'll allow you to test the changes to ttyname() and ttyname_r() on a patched glibc. Are we good about the patch as it stands? On Fri, Jan 27, 2017 at 03:59:58PM +0100, Christian Brauner wrote: > Hi, > > Last we've talked this patches was ready to merge. The only thing left to do was > to sign an FSF agreement. I did and it is fully processed. If you need to see a > PDF I can send it to a specific person privately per mail. I hope we're good to > go now. :) > > I've taken over this patch from Serge who has been informed and is CCed on this > thread. There are no significant functional changes. As requested the following > this have been changed: > > - remove obsolete comment in ttyname_r.c > - move is_pty() to common header file and mark as static inline > > Christian > > Christian Brauner (1): > linux ttyname and ttyname_r: do not return wrong results > > ChangeLog | 12 ++++++++++++ > sysdeps/unix/sysv/linux/ttyname.c | 16 ++++++++++++---- > sysdeps/unix/sysv/linux/ttyname.h | 35 +++++++++++++++++++++++++++++++++++ > sysdeps/unix/sysv/linux/ttyname_r.c | 17 +++++++++++++---- > 4 files changed, 72 insertions(+), 8 deletions(-) > create mode 100644 sysdeps/unix/sysv/linux/ttyname.h > > -- > 2.11.0
/*
*
* Copyright © 2017 Christian Brauner <christian.brauner@ubuntu.com>.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2, as
* published by the Free Software Foundation.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#define _GNU_SOURCE
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
/* Test whether ttyname() */
int main(int argc, char *argv[])
{
int fd;
char buf[4096];
fd = open("/proc/self/fd/0", O_RDONLY);
if (fd < 0) {
fprintf(stderr, "Could not open \"/proc/self/fd/0\": %s.\n",
strerror(errno));
exit(EXIT_FAILURE);
}
if (!ttyname(fd)) {
/* COMMENT(brauner): ENODEV will only be set by a patched
* glibc.
*/
if (errno == ENODEV) {
printf("ttyname(): The pty device might exist in a "
"different "
"namespace: %s\n",
strerror(errno));
} else {
exit(EXIT_FAILURE);
}
}
if (ttyname_r(fd, buf, sizeof(buf))) {
/* COMMENT(brauner): ENODEV will only be set by a patched
* glibc.
*/
if (errno == ENODEV) {
printf("ttyname_r(): The pty device might exist in a "
"different "
"namespace: %s\n",
strerror(errno));
} else {
exit(EXIT_FAILURE);
}
}
exit(EXIT_SUCCESS);
}
Attachment:
signature.asc
Description: PGP signature
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |