[usr/src/usr.bin/limits/limits.c:507]: (warning) Logical disjunction always evaluates to true: EXPR == 0 || EXPR. if (which_limits[rcswhich] == ANY || which_limits[rcswhich])
Yup. Definitely always true.
I think this will fix the issue properly, but I need to add more tests to ensure I'm not breaking something that works by accident: $ svn diff limits.c Index: limits.c =================================================================== --- limits.c (revision 290437) +++ limits.c (working copy) @@ -504,7 +504,7 @@ for (rcswhich = 0; rcswhich < RLIM_NLIMITS; rcswhich++) { if (doall || num_limits == 0 || which_limits[rcswhich] != 0) { - if (which_limits[rcswhich] == ANY || which_limits[rcswhich]) + if (which_limits[rcswhich] == ANY) which_limits[rcswhich] = type; if (shellparm[shelltype].lprm[rcswhich].pfx) { if (shellparm[shelltype].both && limits[rcswhich].rlim_cur == limits[rcswhich].rlim_max) {
Releasing bugs back to the pool.
Fixed in base r328212