The `lt' variable is used in the second pass for actually printing
limits, but its value is simply debris from the first command-line
parsing pass and has no useful meaning.
Since it's a convenient abbreviation, initialize it properly in the
second-pass loop and use it consistently.
Spotted by GCC.
for (i = 0; i < npid; i++) {
for (j = 0; j < nassign; j++) {
for (i = 0; i < npid; i++) {
for (j = 0; j < nassign; j++) {
- if (prlimit(pid[i], assign[j].lt->id, 0, &lim)) {
+ lt = assign[j].lt;
+ if (prlimit(pid[i], lt->id, 0, &lim)) {
moan("failed to read `%s' limit for pid %ld: %s",
moan("failed to read `%s' limit for pid %ld: %s",
- assign[j].lt->name, (long)pid[i], strerror(errno));
+ lt->name, (long)pid[i], strerror(errno));
goto err;
}
if (!assign[j].which) {
goto err;
}
if (!assign[j].which) {
} else {
if (assign[j].which & f_soft) lim.rlim_cur = assign[j].val;
if (assign[j].which & f_hard) lim.rlim_max = assign[j].val;
} else {
if (assign[j].which & f_soft) lim.rlim_cur = assign[j].val;
if (assign[j].which & f_hard) lim.rlim_max = assign[j].val;
- if (prlimit(pid[i], assign[j].lt->id, &lim, 0)) {
+ if (prlimit(pid[i], lt->id, &lim, 0)) {
moan("failed to set `%s' limit for pid %ld: %s\n",
moan("failed to set `%s' limit for pid %ld: %s\n",
- assign[j].lt->name, (long)pid[i], strerror(errno));
+ lt->name, (long)pid[i], strerror(errno));