From: Simon Wilkinson Date: Fri, 1 Mar 2013 11:22:26 +0000 (+0000) Subject: kauth: Don't overflow cellinfo hostAddrs array X-Git-Tag: upstream/1.6.3^2~118 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=393043f6dbfdd684b14281fbe568c14c0e11a15c;p=packages%2Fo%2Fopenafs.git kauth: Don't overflow cellinfo hostAddrs array The hostaddrs array has MAXHOSTSPERCELL (8) available elements. The ubik connections list has MAXSERVERS (20) elements - when copying from the ubik list into the cellinfo hostaddrs list, be careful not to overflow it. Caught by coverity (#985577) Reviewed-on: http://gerrit.openafs.org/9323 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Reviewed-by: Derrick Brashear (cherry picked from commit 30e25c74376dd8aa24018116015e57c47c1dfaf9) Change-Id: I6bf03fada98cf6f5442a7d6a1e52e18cc91aad59 Reviewed-on: http://gerrit.openafs.org/9375 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Paul Smeddle Reviewed-by: Stephan Wiesand --- diff --git a/src/kauth/kaserver.c b/src/kauth/kaserver.c index cc642a55e..db70a9c1f 100644 --- a/src/kauth/kaserver.c +++ b/src/kauth/kaserver.c @@ -333,6 +333,11 @@ main(int argc, char *argv[]) for (i = 1; i < MAXSERVERS; i++) { if (!serverList[i]) break; + if (i >= MAXHOSTSPERCELL) { + fprintf(stderr, + "Too many ubik servers specified on command line\n"); + exit(1); + } cellinfo.hostAddr[i].sin_addr.s_addr = serverList[i]; } cellinfo.numServers = i;