Research Menu

.
Skip Search Box

SELinux Mailing List

RE: libsemanage patch

From: Stephen Smalley <sds_at_tycho.nsa.gov>
Date: Mon, 03 Dec 2007 14:53:12 -0500


On Mon, 2007-12-03 at 14:51 -0500, Todd Miller wrote:
> Daniel J Walsh wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > genhomedircon includes the "\n" in /etc/shells so no shells in the
> > /etc/passwd match.
>
> Isn't this going to cause problems if the last line in /etc/shells has
> no newline?
>
> Instead of:
> temp[strlen(temp)-1]=0;
>
> I would use:
> temp[strcspn(temp, "\n")] = '\0';
>
> That will overwrite the first newline with a NUL or, if there is no
> newline, the terminating NUL will be overwritten with another NUL, which
> is harmless. It is a useful idiom...

Given that getline() returns the length read (not to be confused with the buffer length), why not just:

	while ((len = getline(&temp, &buff_len, shells)) > 0) {
		if (temp[len-1] == '\n') temp[len-1] = 0;

-- 
Stephen Smalley
National Security Agency


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.
Received on Mon 3 Dec 2007 - 14:58:13 EST
 

Date Posted: Jan 15, 2009 | Last Modified: Jan 15, 2009 | Last Reviewed: Jan 15, 2009

 
bottom

National Security Agency / Central Security Service