X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fvsched.c;h=801003b9ac36d1c76c90326a0832d7c2a32459f4;hb=7ca2184598beb16840dffa6680e87e87723f846f;hp=e8e87c9ec06ce34c02bcd05804dfc791eba289fb;hpb=9c99ac0d54173ed767c16f5c93f586ebfc6ef977;p=util-vserver.git diff --git a/src/vsched.c b/src/vsched.c index e8e87c9..801003b 100644 --- a/src/vsched.c +++ b/src/vsched.c @@ -158,12 +158,7 @@ showVersion() static void do_dir_entry(struct vc_set_sched *sched, const char *name) { - int fd; - 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) @@ -172,22 +167,28 @@ static void do_dir_entry(struct vc_set_sched *sched, const char *name) if (opt->name == 0) return; - fd = Eopen(name, O_RDONLY, 0); - 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); - WRITE_STR(2, name); - WRITE_MSG(2, ": is not a number\n"); - exit(1); - } + if (opt->offset != offsetof(struct vc_set_sched, set_mask)) { + int fd; + char buf[128], *newline; + signed long val; + ssize_t len; + + fd = Eopen(name, O_RDONLY, 0); + 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); + WRITE_STR(2, name); + WRITE_MSG(2, ": is not an integer\n"); + exit(1); + } - if (opt->offset != offsetof(struct vc_set_sched, set_mask)) *(int_least32_t *)(((char *)sched)+opt->offset) = (int_least32_t) val; + } sched->set_mask |= opt->mask; } @@ -243,7 +244,7 @@ static void do_dir(xid_t xid, struct vc_set_sched *sched, const char *dir, int m #define SETVAL(ATTR,MASK) \ if (!isNumber(optarg, &tmp, false)) { \ - WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "non-numeric value specified for '--" #ATTR "'\n"); \ + WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "non-integer value specified for '--" #ATTR "'\n"); \ exit(wrapper_exit_code); \ } \ else { \