+2007-11-19 Nicolas François <nicolas.francois@centraliens.net>
+
+ Fix some compilation warnings:
+ * src/login.c: "dereferencing type-punned pointer will break
+ strict-aliasing rules", add a variable indirection: ptr_pam_user.
+ * lib/commonio.c: do not initialize the sb stat structure.
+ * lib/pwio.c, lib/shadowio.c, lib/sgroupio.c, lib/groupio.c:
+ initialize the security context if WITH_SELINUX.
+ * lib/nscd.c: The service argument is not const (used in the exec*
+ parameters). This matches with the prototype definition.
+ * src/groupmems.c: Avoid ++i when i is also used in the same line.
+ * src/newusers.c: i is positive every time it is compared. Add
+ cast to unsigned int.
+ * src/nologin.c: Use a main() prototype with no arguments.
+ * libmisc/getdate.y: Initialize the type and value fields of the
+ terminating entry for each TABLE.
+ * libmisc/tz.c: Use "TZ=CST6CDT" as the default timezone.
+
2007-11-19 Nicolas François <nicolas.francois@centraliens.net>
* man/pl/Makefile.am: Add getspnam.3 to EXTRA_DIST since it is
int res;
#if defined(S_ISLNK)
- struct stat sb = { 0 };
+ struct stat sb;
if (lstat (new, &sb) == 0 && S_ISLNK (sb.st_mode)) {
if (realpath (new, resolved_path) == NULL) {
perror ("realpath in lrename()");
GROUP_FILE, /* filename */
&group_ops, /* ops */
NULL, /* fp */
+#ifdef WITH_SELINUX
+ NULL, /* scontext */
+#endif
NULL, /* head */
NULL, /* tail */
NULL, /* cursor */
/*
* nscd_flush_cache - flush specified service buffer in nscd cache
*/
-int nscd_flush_cache (const char *service)
+int nscd_flush_cache (char *service)
{
pid_t pid, termpid;
int err, status;
PASSWD_FILE, /* filename */
&passwd_ops, /* ops */
NULL, /* fp */
+#ifdef WITH_SELINUX
+ NULL, /* scontext */
+#endif
NULL, /* head */
NULL, /* tail */
NULL, /* cursor */
SGROUP_FILE, /* filename */
&gshadow_ops, /* ops */
NULL, /* fp */
+#ifdef WITH_SELINUX
+ NULL, /* scontext */
+#endif
NULL, /* head */
NULL, /* tail */
NULL, /* cursor */
SHADOW_FILE, /* filename */
&shadow_ops, /* ops */
NULL, /* fp */
+#ifdef WITH_SELINUX
+ NULL, /* scontext */
+#endif
NULL, /* head */
NULL, /* tail */
NULL, /* cursor */
{ "thurs", tDAY, 4 },
{ "friday", tDAY, 5 },
{ "saturday", tDAY, 6 },
- { NULL }
+ { NULL, 0, 0 }
};
/* Time units table. */
{ "min", tMINUTE_UNIT, 1 },
{ "second", tSEC_UNIT, 1 },
{ "sec", tSEC_UNIT, 1 },
- { NULL }
+ { NULL, 0, 0 }
};
/* Assorted relative-time words. */
{ "eleventh", tUNUMBER, 11 },
{ "twelfth", tUNUMBER, 12 },
{ "ago", tAGO, 1 },
- { NULL }
+ { NULL, 0, 0 }
};
/* The timezone table. */
{ "nzst", tZONE, -HOUR (12) }, /* New Zealand Standard */
{ "nzdt", tDAYZONE, -HOUR (12) }, /* New Zealand Daylight */
{ "idle", tZONE, -HOUR (12) }, /* International Date Line East */
- { NULL }
+ { NULL, 0, 0 }
};
/* Military timezone table. */
{ "x", tZONE, HOUR (-11) },
{ "y", tZONE, HOUR (-12) },
{ "z", tZONE, HOUR ( 0) },
- { NULL }
+ { NULL, 0, 0 }
};
\f
{
FILE *fp = 0;
static char tzbuf[BUFSIZ];
- const char *def_tz;
+ const char *def_tz = "TZ=CST6CDT";
if ((fp = fopen (fname, "r")) == NULL ||
fgets (tzbuf, sizeof (tzbuf), fp) == NULL) {
}
while (found && NULL != members[i]) {
- members[i] = members[++i];
+ members[i] = members[i+1];
+ i++;
}
if (!found) {
int retcode;
pid_t child;
char *pam_user;
+ char **ptr_pam_user = &pam_user;
#else
struct spwd *spwd = NULL;
#endif
/* if we didn't get a user on the command line,
set it to NULL */
pam_get_item (pamh, PAM_USER,
- (const void **) &pam_user);
+ (const void **)ptr_pam_user);
if (pam_user[0] == '\0')
pam_set_item (pamh, PAM_USER, NULL);
retcode = pam_authenticate (pamh, 0);
pam_get_item (pamh, PAM_USER,
- (const void **) &pam_user);
+ (const void **) ptr_pam_user);
if (pam_user && pam_user[0]) {
pwd = xgetpwnam(pam_user);
First get the username that we are actually using, though.
*/
retcode =
- pam_get_item (pamh, PAM_USER, (const void **) &pam_user);
+ pam_get_item (pamh, PAM_USER, (const void **)ptr_pam_user);
setpwent ();
pwd = xgetpwnam (pam_user);
if (!pwd) {
if (gid[0] == '\0') {
i = 100;
for (pw_rewind (); (pwd = pw_next ());) {
- if (pwd->pw_uid >= i)
+ if (pwd->pw_uid >= (unsigned int)i)
i = pwd->pw_uid + 1;
}
for (gr_rewind (); (grp = gr_next ());) {
- if (grp->gr_gid == i) {
+ if (grp->gr_gid == (unsigned int)i) {
i = -1;
break;
}
*/
i = atoi (gid);
for (gr_rewind (); (grp = gr_next ());)
- if (grp->gr_gid == i)
+ if (grp->gr_gid == (unsigned int)i)
goto add_member;
} else
/*
*/
if (i == -1) {
for (i = 100, gr_rewind (); (grp = gr_next ());)
- if (grp->gr_gid >= i)
+ if (grp->gr_gid >= (unsigned int)i)
i = grp->gr_gid + 1;
}
#include <unistd.h>
#include "exitcodes.h"
-int main (int argc, char **argv)
+int main ()
{
const char *user, *tty;