All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Zaman <jason@perfinion.com>
To: Stephen Smalley <sds@tycho.nsa.gov>
Cc: selinux@tycho.nsa.gov
Subject: Re: [PATCH v2 5/8] genhomedircon: Add uid and gid to struct user_entry
Date: Fri, 29 Apr 2016 20:01:08 +0800	[thread overview]
Message-ID: <20160429120108.GA24508@meriadoc> (raw)
In-Reply-To: <289e173b-e19f-4de2-d862-c5736bbcffa7@tycho.nsa.gov>

On Thu, Apr 28, 2016 at 02:13:30PM -0400, Stephen Smalley wrote:
> On 04/28/2016 01:53 PM, Jason Zaman wrote:
> > On Wed, Apr 27, 2016 at 01:04:25PM -0400, Stephen Smalley wrote:
> >> On 04/23/2016 02:04 AM, Jason Zaman wrote:
> >>> +		if (snprintf(uid, sizeof(uid), "%d", pwent->pw_uid) < 0
> >>> +		 || snprintf(gid, sizeof(gid), "%d", pwent->pw_gid) < 0) {
> >>
> >> Should you be using %u instead of %d?
> > yes, its unsigned, will fix.
> > 
> >> Also, snprintf returns >= size if the output was truncated, not < 0.
> > 
> >>From the man page:
> > RETURN VALUE
> > [...] Thus, a return value of size or more means that the output was truncated.
> > If an output error is encountered, a negative value is returned.
> > 
> > I definitely need to check <0. but do I *also* need to check >= size? I
> > dont think that can ever happen since 10chars+NULL fits fine.
> 
> I don't think either case is actually possible here (< 0 should only
> occur with printf or fprintf variants, not s*printf, and as you note,
> the truncation case should be covered).

So I think this is correct but i noticed a few more things in the man
page so I am just going to be cautious and check them all anyway.

1) glibc changed bahaviour:
"The glibc implementation of the functions snprintf() and vsnprintf()
conforms to the C99 standard, that is, behaves as described above, since
glibc  version  2.1.   Until  glibc 2.0.6, they would return -1 when the
output was truncated."

2) it looks like there might possibly be locale issues for some of the
stranger ones? i dont think it'd be an issue but having the check doesnt
exactly harm anything since genhomedircon is only run once when building
a policy. This also raises the issue of if there are locale issues
should semodule and friends be checking/resetting LANG/LC_NUMERIC for
sanity early on?

I'm going to send v3 of this patch with these fixes. Do you want me to
re-send the whole set or is just this one enough?

-- Jason

  reply	other threads:[~2016-04-29 12:01 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-01  9:36 genhomedircon uid template Jason Zaman
2016-02-01 19:30 ` Stephen Smalley
2016-02-02  6:26   ` Jason Zaman
2016-02-02 13:57     ` Christopher J. PeBenito
2016-02-02 15:03     ` Stephen Smalley
2016-02-02 20:39       ` Nicolas Iooss
2016-04-08 16:05 ` genhomedircon USERID and USERNAME patches Jason Zaman
2016-04-08 16:05   ` [PATCH 1/7] genhomedircon: factor out common replacement code Jason Zaman
2016-04-08 16:05   ` [PATCH 2/7] genhomedircon: move fallback user to genhomedircon_user_entry_t Jason Zaman
2016-04-08 16:05   ` [PATCH 3/7] genhomedircon: rename FALLBACK #defines consistent with struct Jason Zaman
2016-04-08 16:05   ` [PATCH 4/7] genhomedircon: make all write context funcs take user_entry struct Jason Zaman
2016-04-08 16:05   ` [PATCH 5/7] genhomedircon: Add uid and gid to struct user_entry Jason Zaman
2016-04-08 16:05   ` [PATCH 6/7] genhomedircon: make USERID, USERNAME context lists Jason Zaman
2016-04-08 16:05   ` [PATCH 7/7] genhomedircon: write contexts for username and userid Jason Zaman
2016-04-11 21:44   ` genhomedircon USERID and USERNAME patches Nicolas Iooss
2016-04-12  7:56     ` Dominick Grift
2016-04-12 11:51     ` Jason Zaman
2016-04-12 12:57     ` Stephen Smalley
2016-04-12 14:35       ` Christopher J. PeBenito
2016-04-13 16:34         ` Dominick Grift
2016-04-13 17:00           ` Stephen Smalley
2016-04-13 17:10             ` Dominick Grift
2016-04-13 17:18               ` Dominick Grift
2016-04-13 18:25                 ` Dominick Grift
2016-04-17 10:12                   ` Dominick Grift
2016-04-17 12:03                     ` Dominick Grift
2016-04-17 19:19                       ` Dominick Grift
2016-04-18  6:23                         ` Dominick Grift
2016-04-23  6:04   ` genhomedircon USERID and USERNAME patches v2 Jason Zaman
2016-04-23  6:04     ` [PATCH v2 1/8] genhomedircon: factor out common replacement code Jason Zaman
2016-04-23  6:04     ` [PATCH v2 2/8] genhomedircon: move fallback user to genhomedircon_user_entry_t Jason Zaman
2016-04-29 16:54       ` Stephen Smalley
2016-04-29 19:23         ` Jason Zaman
2016-04-29 20:29           ` Stephen Smalley
2016-04-23  6:04     ` [PATCH v2 3/8] genhomedircon: rename FALLBACK #defines consistent with struct Jason Zaman
2016-04-23  6:04     ` [PATCH v2 4/8] genhomedircon: make all write context funcs take user_entry struct Jason Zaman
2016-04-23  6:04     ` [PATCH v2 5/8] genhomedircon: Add uid and gid to struct user_entry Jason Zaman
2016-04-27 17:04       ` Stephen Smalley
2016-04-28 17:53         ` Jason Zaman
2016-04-28 18:13           ` Stephen Smalley
2016-04-29 12:01             ` Jason Zaman [this message]
2016-04-23  6:04     ` [PATCH v2 6/8] genhomedircon: make USERID, USERNAME context lists Jason Zaman
2016-04-23  6:04     ` [PATCH v2 7/8] genhomedircon: write contexts for username and userid Jason Zaman
2016-04-23  6:04     ` [PATCH v2 8/8] genhomedircon: fix FALLBACK_NAME regex Jason Zaman
2016-04-26 22:03     ` genhomedircon USERID and USERNAME patches v2 Nicolas Iooss
2016-04-29 12:04   ` [PATCH v3 5/8] genhomedircon: Add uid and gid to struct user_entry Jason Zaman
2016-04-29 20:28     ` Stephen Smalley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160429120108.GA24508@meriadoc \
    --to=jason@perfinion.com \
    --cc=sds@tycho.nsa.gov \
    --cc=selinux@tycho.nsa.gov \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.