diff options
Diffstat (limited to 'nslcd/hackers_watch.c')
-rw-r--r-- | nslcd/hackers_watch.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/nslcd/hackers_watch.c b/nslcd/hackers_watch.c index 31e7e3b..1516593 100644 --- a/nslcd/hackers_watch.c +++ b/nslcd/hackers_watch.c @@ -50,7 +50,8 @@ hackers_init(const char *yamldir, struct session *sess) { sess->in_wd_yaml = inotify_add_watch(sess->in_fd, yamldir, EVENT_CHILD_ANY); sess->in_wd_home = inotify_add_watch(sess->in_fd, "/home" , EVENT_CHILD_ADD); - asprintf(&glob_pattern, "%s/*.yml", yamldir); + if (asprintf(&glob_pattern, "%s/*.yml", yamldir) < 0) + return -1; glob(glob_pattern, 0, NULL, &glob_results); free(glob_pattern); @@ -136,9 +137,10 @@ worker_handle_del_yaml(struct session *sess, uid_t uid) { pthread_rwlock_unlock(&(sess->lock)); } -void +int hackers_worker(struct session *sess) { - chdir(sess->yamldir); + if (chdir(sess->yamldir) < 0) + return -1; for (INOTIFY_ITERATOR(sess->in_fd, event)) { if (event->wd == sess->in_wd_yaml) { /* handle updates to yaml files */ @@ -183,4 +185,5 @@ hackers_worker(struct session *sess) { } } } + return -1; } |