From bd9b1a68c9b4855e2dab03fc2b84e174446cbef5 Mon Sep 17 00:00:00 2001 From: Daniel Hokka Zakrisson Date: Sat, 11 Nov 2006 00:53:25 +0000 Subject: [PATCH] Only bother with the first line of the files. Add required cast. git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2374 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- src/vsched.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/vsched.c b/src/vsched.c index bf6603f..358d139 100644 --- a/src/vsched.c +++ b/src/vsched.c @@ -143,6 +143,8 @@ static void do_dir_entry(struct vc_set_sched *sched, const char *name) char buf[128]; signed long val; struct sched_opt *opt; + ssize_t len; + char *newline; for (opt = FILE_OPTIONS; opt->name != 0; opt++) { if (strcmp(name, opt->name) == 0) @@ -150,8 +152,11 @@ static void do_dir_entry(struct vc_set_sched *sched, const char *name) } fd = Eopen(name, O_RDONLY, 0); - Eread(fd, buf, sizeof(buf)); + len = Eread(fd, buf, sizeof(buf)-1); Eclose(fd); + buf[len] = '\0'; + if ((newline=strchr(buf, '\n')) != NULL) + *newline = '\0'; if (!isNumber(buf, &val, true)) { WRITE_MSG(2, ENSC_WRAPPERS_PREFIX); @@ -161,7 +166,7 @@ static void do_dir_entry(struct vc_set_sched *sched, const char *name) } if (opt->offset != offsetof(struct vc_set_sched, set_mask)) - *(((char *)sched)+opt->offset) = (int_least32_t) val; + *(int_least32_t *)(((char *)sched)+opt->offset) = (int_least32_t) val; sched->set_mask |= opt->mask; } -- 1.8.1.5