bsdacct: fix uid/gid misreporting

commit d8e180dcd5 "bsdacct: switch
credentials for writing to the accounting file" introduced credential
switching during final acct data collecting.  However, uid/gid pair
continued to be collected from current which became credentials of who
created acct file, not who exits.

Addresses http://bugzilla.kernel.org/show_bug.cgi?id=14676

Signed-off-by: Alexey Dobriyan <[email protected]>
Reported-by: Juho K. Juopperi <[email protected]>
Acked-by: Serge Hallyn <[email protected]>
Acked-by: David Howells <[email protected]>
Reviewed-by: Michal Schmidt <[email protected]>
Cc: James Morris <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
Alexey Dobriyan 2009-12-14 17:57:34 -08:00 • committed by Linus Torvalds
commit 4b731d50ff

View file

@ -536,7 +536,8 @@ static void do_acct_process(struct bsd_acct_struct *acct,
do_div(elapsed, AHZ);
ac.ac_btime = get_seconds() - elapsed;
/* we really need to bite the bullet and change layout */
current_uid_gid(&ac.ac_uid, &ac.ac_gid);
ac.ac_uid = orig_cred->uid;
ac.ac_gid = orig_cred->gid;
#if ACCT_VERSION==2
ac.ac_ahz = AHZ;
#endif