From 3433cb9f5a47477bc02420b2e319d66929f46294 Mon Sep 17 00:00:00 2001 From: David Härdeman Date: Wed, 10 Jun 2020 23:43:23 +0200 Subject: Check the return value from server_new --- cfgdir.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'cfgdir.c') diff --git a/cfgdir.c b/cfgdir.c index 08b40f1..7e5022b 100644 --- a/cfgdir.c +++ b/cfgdir.c @@ -412,7 +412,7 @@ cfgdir_init(struct cfg *cfg) int ifd; int iwd; struct inotify_ev *iev; - DIR *cfgdir; + DIR *dir; struct dirent *dent; struct server *scfg; @@ -438,20 +438,21 @@ cfgdir_init(struct cfg *cfg) cfg->iev = iev; uring_read(cfg, &iev->task, iev->buf, sizeof(iev->buf), inotify_cb); - cfgdir = opendir("."); - if (!cfgdir) + dir = opendir("."); + if (!dir) perrordie("opendir"); - while ((dent = readdir(cfgdir)) != NULL) { + while ((dent = readdir(dir)) != NULL) { if (dent->d_type != DT_REG && dent->d_type != DT_UNKNOWN) continue; if (!scfg_valid_filename(dent->d_name)) continue; scfg = server_new(cfg, dent->d_name); - uring_openat(cfg, &scfg->task, scfg->name, scfg_open_cb); + if (scfg) + uring_openat(cfg, &scfg->task, scfg->name, scfg_open_cb); } - closedir(cfgdir); + closedir(dir); } -- cgit v1.2.3