summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
d428ae6)
The code used to assume a fixed relationship between command-line
argument indices and indices in the `mdup_fd' table. Fix this by
introducing separate index variables in the argument-parsing loop, and
set the table length correctly afterwards.
int main(int argc, char *argv[])
{
int main(int argc, char *argv[])
{
int fd, fd2;
struct stat st;
int ino[MAXFD];
int fd, fd2;
struct stat st;
int ino[MAXFD];
mdup_fd fds[MAXFD];
int win = 1;
mdup_fd fds[MAXFD];
int win = 1;
- for (i = 0; i < argc - 1; i++) {
- if (i >= MAXFD) { fprintf(stderr, "too many\n"); exit(1); }
- if (sscanf(argv[i + 1], "%d:%d", &fds[i].cur, &fds[i].want) < 2 ||
- fds[i].cur >= MAXFD)
+ for (i = 1, j = 0; i < argc; i++) {
+ if (j >= MAXFD) { fprintf(stderr, "too many\n"); exit(1); }
+ if (sscanf(argv[i], "%d:%d", &fds[j].cur, &fds[j].want) < 2 ||
+ fds[j].cur >= MAXFD)
{ fprintf(stderr, "bad syntax\n"); exit(1); }
{ fprintf(stderr, "bad syntax\n"); exit(1); }
for (i = 0; i < MAXFD; i++) flag[i] = -1;
for (i = 0; i < n; i++) {
fd = fds[i].cur;
for (i = 0; i < MAXFD; i++) flag[i] = -1;
for (i = 0; i < n; i++) {
fd = fds[i].cur;