* lib/port.c: Avoid implicit conversion of pointers / integers / chars to booleans.

* lib/port.c: Avoid multiple statement on the same line.
	* lib/port.c: Add brackets and parenthesis.
	* lib/port.c: Avoid assignments in comparisons.
	* lib/port.c: Fix typo comparision -> comparison (in comment).
This commit is contained in:
nekral-guest 2008-05-26 01:05:04 +00:00
parent 14839257ac
commit 09869159f7
2 changed files with 65 additions and 29 deletions

View File

@ -1,3 +1,12 @@
2008-05-26 Nicolas François <nicolas.francois@centraliens.net>
* lib/port.c: Avoid implicit conversion of pointers / integers /
chars to booleans.
* lib/port.c: Avoid multiple statement on the same line.
* lib/port.c: Add brackets and parenthesis.
* lib/port.c: Avoid assignments in comparisons.
* lib/port.c: Fix typo comparision -> comparison (in comment).
2008-05-26 Nicolas François <nicolas.francois@centraliens.net> 2008-05-26 Nicolas François <nicolas.francois@centraliens.net>
* lib/fputsx.c: Add brackets. * lib/fputsx.c: Add brackets.

View File

@ -57,15 +57,19 @@ static int portcmp (const char *pattern, const char *port)
{ {
const char *orig = port; const char *orig = port;
while (*pattern && *pattern == *port) while (('\0' != *pattern) && (*pattern == *port)) {
pattern++, port++; pattern++;
port++;
}
if (*pattern == 0 && *port == 0) if (('\0' == *pattern) && ('\0' == *port)) {
return 0; return 0;
if (orig[0] == 'S' && orig[1] == 'U' && orig[2] == '\0') }
if ((orig[0] == 'S') && (orig[1] == 'U') && (orig[2] == '\0')) {
return 1; return 1;
}
return *pattern == '*' ? 0 : 1; return (*pattern == '*') ? 0 : 1;
} }
/* /*
@ -77,10 +81,11 @@ static int portcmp (const char *pattern, const char *port)
static void setportent (void) static void setportent (void)
{ {
if (ports) if (NULL != ports) {
rewind (ports); rewind (ports);
else } else {
ports = fopen (PORTS, "r"); ports = fopen (PORTS, "r");
}
} }
/* /*
@ -93,8 +98,9 @@ static void setportent (void)
static void endportent (void) static void endportent (void)
{ {
if (ports) if (NULL != ports) {
fclose (ports); fclose (ports);
}
ports = (FILE *) 0; ports = (FILE *) 0;
} }
@ -125,10 +131,11 @@ static struct port *getportent (void)
* since we want to search from the beginning each time. * since we want to search from the beginning each time.
*/ */
if (!ports) if (NULL == ports) {
setportent (); setportent ();
}
if (!ports) { if (NULL == ports) {
errno = saveerr; errno = saveerr;
return 0; return 0;
} }
@ -154,8 +161,9 @@ static struct port *getportent (void)
errno = saveerr; errno = saveerr;
return 0; return 0;
} }
if (buf[0] == '#') if (buf[0] == '#') {
goto again; goto again;
}
/* /*
* Get the name of the TTY device. It is the first colon * Get the name of the TTY device. It is the first colon
@ -169,11 +177,13 @@ static struct port *getportent (void)
port.pt_names = ttys; port.pt_names = ttys;
for (cp = buf, j = 0; j < PORT_TTY; j++) { for (cp = buf, j = 0; j < PORT_TTY; j++) {
port.pt_names[j] = cp; port.pt_names[j] = cp;
while (*cp && *cp != ':' && *cp != ',') while (('\0' != *cp) && (*cp != ':') && (*cp != ',')) {
cp++; cp++;
}
if (!*cp) if ('\0' == *cp) {
goto again; /* line format error */ goto again; /* line format error */
}
if (*cp == ':') /* end of tty name list */ if (*cp == ':') /* end of tty name list */
break; break;
@ -234,7 +244,7 @@ static struct port *getportent (void)
* Get the next comma separated entry * Get the next comma separated entry
*/ */
for (j = 0; *cp && j < PORT_TIMES; j++) { for (j = 0; ('\0' != *cp) && (j < PORT_TIMES); j++) {
/* /*
* Start off with no days of the week * Start off with no days of the week
@ -248,7 +258,9 @@ static struct port *getportent (void)
* week or the other two values. * week or the other two values.
*/ */
for (i = 0; cp[i] && cp[i + 1] && isalpha (cp[i]); i += 2) { for (i = 0;
('\0' != cp[i]) && ('\0' != cp[i + 1]) && isalpha (cp[i]);
i += 2) {
switch ((cp[i] << 8) | (cp[i + 1])) { switch ((cp[i] << 8) | (cp[i + 1])) {
case ('S' << 8) | 'u': case ('S' << 8) | 'u':
port.pt_times[j].t_days |= 01; port.pt_times[j].t_days |= 01;
@ -296,19 +308,25 @@ static struct port *getportent (void)
* representing the times of day. * representing the times of day.
*/ */
for (dtime = 0; cp[i] && isdigit (cp[i]); i++) for (dtime = 0; ('\0' != cp[i]) && isdigit (cp[i]); i++) {
dtime = dtime * 10 + cp[i] - '0'; dtime = dtime * 10 + cp[i] - '0';
}
if (cp[i] != '-' || dtime > 2400 || dtime % 100 > 59) if (cp[i] != '-' || dtime > 2400 || dtime % 100 > 59) {
goto again; goto again;
}
port.pt_times[j].t_start = dtime; port.pt_times[j].t_start = dtime;
cp = cp + i + 1; cp = cp + i + 1;
for (dtime = i = 0; cp[i] && isdigit (cp[i]); i++) for (dtime = i = 0; ('\0' != cp[i]) && isdigit (cp[i]); i++) {
dtime = dtime * 10 + cp[i] - '0'; dtime = dtime * 10 + cp[i] - '0';
}
if ((cp[i] != ',' && cp[i]) || dtime > 2400 || dtime % 100 > 59) if (((cp[i] != ',') && (cp[i] != '\0')) ||
(dtime > 2400) ||
((dtime % 100) > 59)) {
goto again; goto again;
}
port.pt_times[j].t_end = dtime; port.pt_times[j].t_end = dtime;
cp = cp + i + 1; cp = cp + i + 1;
@ -340,24 +358,29 @@ static struct port *getttyuser (const char *tty, const char *user)
setportent (); setportent ();
while ((port = getportent ())) { while ((port = getportent ()) != NULL) {
if (port->pt_names == 0 || port->pt_users == 0) if (port->pt_names == 0 || port->pt_users == 0)
continue; continue;
for (i = 0; port->pt_names[i]; i++) for (i = 0; NULL != port->pt_names[i]; i++) {
if (portcmp (port->pt_names[i], tty) == 0) if (portcmp (port->pt_names[i], tty) == 0) {
break; break;
}
}
if (port->pt_names[i] == 0) if (port->pt_names[i] == 0)
continue; continue;
for (j = 0; port->pt_users[j]; j++) for (j = 0; NULL != port->pt_users[j]; j++) {
if (strcmp (user, port->pt_users[j]) == 0 || if (strcmp (user, port->pt_users[j]) == 0 ||
strcmp (port->pt_users[j], "*") == 0) strcmp (port->pt_users[j], "*") == 0) {
break; break;
}
}
if (port->pt_users[j] != 0) if (port->pt_users[j] != 0) {
break; break;
}
} }
endportent (); endportent ();
return port; return port;
@ -383,20 +406,23 @@ int isttytime (const char *id, const char *port, time_t when)
* entry to match all users. * entry to match all users.
*/ */
if (!(pp = getttyuser (port, id))) pp = getttyuser (port, id);
if (NULL == pp) {
return 1; return 1;
}
/* /*
* The entry is there, but has no time entries - don't * The entry is there, but has no time entries - don't
* ever let them login. * ever let them login.
*/ */
if (pp->pt_times == 0) if (pp->pt_times == 0) {
return 0; return 0;
}
/* /*
* The current time is converted to HHMM format for * The current time is converted to HHMM format for
* comparision against the time values in the TTY entry. * comparison against the time values in the TTY entry.
*/ */
tm = localtime (&when); tm = localtime (&when);
@ -405,7 +431,7 @@ int isttytime (const char *id, const char *port, time_t when)
/* /*
* Each time entry is compared against the current * Each time entry is compared against the current
* time. For entries with the start after the end time, * time. For entries with the start after the end time,
* the comparision is made so that the time is between * the comparison is made so that the time is between
* midnight and either the start or end time. * midnight and either the start or end time.
*/ */
@ -431,3 +457,4 @@ int isttytime (const char *id, const char *port, time_t when)
return 0; return 0;
} }