The behavior of signed integer over/underflow is implementation-defined,
but even if the compiler is nice and just wraps around, we could get
ourselves into trouble later on.
Reviewed-on: http://gerrit.openafs.org/10091
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
(cherry picked from commit
6c7c185ba3ec6fbdda0651d18868e66edd655809)
Change-Id: I1feb1879cce064760ae061538215b22b6fd55933
Reviewed-on: http://gerrit.openafs.org/10124
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
if (flag & PRGRP) {
*aid = ntohl(cheader.maxGroup);
- while (code && i < maxcount) {
+ /* Check for PRBADID to avoid wrap-around. */
+ while (code && i < maxcount && *aid != PRBADID) {
--(*aid);
code = FindByID(at, *aid);
i++;
return PRSUCCESS;
} else {
*aid = ntohl(cheader.maxID);
- while (code && i < maxcount) {
+ while (code && i < maxcount && *aid != 0x7fffffff) {
++(*aid);
code = FindByID(at, *aid);
i++;