Magellan Linux

Contents of /trunk/shadow/patches/shadow-4.1.5-userdel-avoid-bad-mem-access.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1667 - (show annotations) (download)
Fri Mar 2 13:08:24 2012 UTC (12 years, 2 months ago) by niro
File size: 1739 byte(s)
-added more fixes
1 Index: src/userdel.c
2 ===================================================================
3 --- src/userdel.c (revision 3713)
4 +++ src/userdel.c (working copy)
5 @@ -329,26 +329,33 @@
6 }
7
8 if (NULL == pwd) {
9 + char gr_name[GROUP_NAME_MAX_LENGTH + 1];
10 +
11 + /* make a copy of the group name before we delete it.
12 + * we can't use ->gr_name after the group is deleted
13 + * for logging purposes */
14 + snprintf(gr_name, GROUP_NAME_MAX_LENGTH, "%s", grp->gr_name);
15 +
16 /*
17 * We can remove this group, it is not the primary
18 * group of any remaining user.
19 */
20 - if (gr_remove (grp->gr_name) == 0) {
21 + if (gr_remove (gr_name) == 0) {
22 fprintf (stderr,
23 _("%s: cannot remove entry '%s' from %s\n"),
24 - Prog, grp->gr_name, gr_dbname ());
25 + Prog, gr_name, gr_dbname ());
26 fail_exit (E_GRP_UPDATE);
27 }
28
29 #ifdef WITH_AUDIT
30 audit_logger (AUDIT_DEL_GROUP, Prog,
31 "deleting group",
32 - grp->gr_name, AUDIT_NO_ID,
33 + gr_name, AUDIT_NO_ID,
34 SHADOW_AUDIT_SUCCESS);
35 #endif /* WITH_AUDIT */
36 SYSLOG ((LOG_INFO,
37 "removed group '%s' owned by '%s'\n",
38 - grp->gr_name, user_name));
39 + gr_name, user_name));
40
41 #ifdef SHADOWGRP
42 if (sgr_locate (user_name) != NULL) {
43 @@ -361,12 +368,12 @@
44 #ifdef WITH_AUDIT
45 audit_logger (AUDIT_DEL_GROUP, Prog,
46 "deleting shadow group",
47 - grp->gr_name, AUDIT_NO_ID,
48 + gr_name, AUDIT_NO_ID,
49 SHADOW_AUDIT_SUCCESS);
50 #endif /* WITH_AUDIT */
51 SYSLOG ((LOG_INFO,
52 "removed shadow group '%s' owned by '%s'\n",
53 - grp->gr_name, user_name));
54 + gr_name, user_name));
55
56 }
57 #endif /* SHADOWGRP */