static int stp_enabled(struct ifdata *br)
{
char path[40 + IFNAMSIZ];
+ int ret;
sprintf(path, "/sys/class/net/%s/bridge/stp_state", br->name);
FILE *f = fopen(path, "r");
if (!f) {
return 0;
}
int enabled = 0;
- fscanf(f, "%d", &enabled);
+ ret = fscanf(f, "%d", &enabled);
+ if (!ret) {
+ LOG("%s, stp_state parsing error", path);
+ return 0;
+ }
fclose(f);
INFO("STP on %s state %d", br->name, enabled);
int main(int argc, char *argv[])
{
- int c;
+ int c,ret;
while ((c = getopt(argc, argv, "dv:")) != -1) {
switch (c) {
case 'd':
return -1;
}
openlog("rstpd", 0, LOG_DAEMON);
- daemon(0, 0);
+ ret = daemon(0, 0);
+ if (ret) {
+ ERROR("daemon() failed");
+ return -1;
+ }
is_daemon = 1;
fprintf(f, "%d", getpid());
fclose(f);