Currently, tcgetpgrp() in uClibc uses an int to store a PID (fetched
via ioctl TIOCGPGRP). This causes problems on platforms where pid_t
is defined to be larger (e.g., uint64_t). Other functions in termios,
such as tcgetsid() and tcsetpgrp(), already pass a pid_t to ioctl(),
so the following patch does the same in tcgetpgrp() as well.
/* Return the foreground process group ID of FD. */
pid_t tcgetpgrp (int fd)
{
- int pgrp;
+ pid_t pgrp;
if (ioctl (fd, TIOCGPGRP, &pgrp) < 0)
- return (pid_t) -1;
- return (pid_t) pgrp;
+ return -1;
+ return pgrp;
}
libc_hidden_def (tcgetpgrp)