lib/utmp.c: Replace UT_LINESIZE by a NITEMS() calculation
A difference between 'struct utmp' and 'struct utmpx' is that the former uses UT_LINESIZE for the size of its array members, while the latter doesn't have a standard variable to get its size. Therefore, we need to get the number of elements in the array with NITEMS(). Reviewed-by: Iker Pedrosa <ipedrosa@redhat.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
This commit is contained in:
+7
-3
@@ -31,19 +31,23 @@
|
|||||||
#ident "$Id$"
|
#ident "$Id$"
|
||||||
|
|
||||||
|
|
||||||
|
#define UTX_LINESIZE NITEMS(memberof(struct utmpx, ut_line))
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* is_my_tty -- determine if "tty" is the same TTY stdin is using
|
* is_my_tty -- determine if "tty" is the same TTY stdin is using
|
||||||
*/
|
*/
|
||||||
static bool is_my_tty (const char tty[UT_LINESIZE])
|
static bool
|
||||||
|
is_my_tty(const char tty[UTX_LINESIZE])
|
||||||
{
|
{
|
||||||
char full_tty[STRLEN("/dev/") + UT_LINESIZE + 1];
|
char full_tty[STRLEN("/dev/") + UTX_LINESIZE + 1];
|
||||||
/* tmptty shall be bigger than full_tty */
|
/* tmptty shall be bigger than full_tty */
|
||||||
static char tmptty[sizeof(full_tty) + 1];
|
static char tmptty[sizeof(full_tty) + 1];
|
||||||
|
|
||||||
full_tty[0] = '\0';
|
full_tty[0] = '\0';
|
||||||
if (tty[0] != '/')
|
if (tty[0] != '/')
|
||||||
strcpy (full_tty, "/dev/");
|
strcpy (full_tty, "/dev/");
|
||||||
strncat (full_tty, tty, UT_LINESIZE);
|
strncat(full_tty, tty, UTX_LINESIZE);
|
||||||
|
|
||||||
if ('\0' == tmptty[0]) {
|
if ('\0' == tmptty[0]) {
|
||||||
const char *tname = ttyname (STDIN_FILENO);
|
const char *tname = ttyname (STDIN_FILENO);
|
||||||
|
|||||||
+1
-1
@@ -212,7 +212,7 @@ main(int argc, char **argv)
|
|||||||
tty_name[0] = '\0';
|
tty_name[0] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
strncat (tty_name, ut->ut_line, UT_LINESIZE);
|
strncat(tty_name, ut->ut_line, NITEMS(ut->ut_line));
|
||||||
#ifndef O_NOCTTY
|
#ifndef O_NOCTTY
|
||||||
#define O_NOCTTY 0
|
#define O_NOCTTY 0
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user