view toys/logname.c @ 650:dd82e0b28eda

Fix bug spotted by Avery Pennarun: getusername() and getgroupname() can reuse the utoa buffer when neither is recognized, meaning uid would be shown again instead of gid.
author Rob Landley <rob@landley.net>
date Sat, 18 Aug 2012 21:12:02 -0500
parents d5fb52b428ed
children
line wrap: on
line source

/* vi: set sw=4 ts=4:
 *
 * logname.c - Print user's login name.
 *
 * Copyright 2012 Elie De Brauwer <eliedebrauwer@gmail.com>
 *
 * See http://pubs.opengroup.org/onlinepubs/9699919799/utilities/logname.html

USE_LOGNAME(NEWTOY(logname, ">0", TOYFLAG_BIN))

config LOGNAME
	bool "logname"
	default y
	help
	  usage: logname

	  Prints the calling user's name or an error when this cannot be
	  determined.
*/

#include "toys.h"

void logname_main(void)
{
	if (getlogin_r(toybuf, sizeof(toybuf))){
		error_exit("no login name");
	}
	xputs(toybuf);
}