diff options
author | jh <jh@FreeBSD.org> | 2012-07-17 09:34:52 +0000 |
---|---|---|
committer | jh <jh@FreeBSD.org> | 2012-07-17 09:34:52 +0000 |
commit | eaa7ddfd7341e05c8953e630a4d9429fdd78b127 (patch) | |
tree | d38ad101f9da94e8161c33a718606dfe93a9930c /usr.sbin/lpr/common_source | |
parent | 76909020e0bcf387498081c0bb4e052f1558550c (diff) | |
download | FreeBSD-src-eaa7ddfd7341e05c8953e630a4d9429fdd78b127.zip FreeBSD-src-eaa7ddfd7341e05c8953e630a4d9429fdd78b127.tar.gz |
Make sure that arraysz is initialized to a value larger than zero.
arraysz could get initialized to zero on ZFS because ZFS reports
directory sizes differently compared to UFS.
PR: bin/169493
Tested by: swills
MFC after: 2 weeks
Diffstat (limited to 'usr.sbin/lpr/common_source')
-rw-r--r-- | usr.sbin/lpr/common_source/common.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/usr.sbin/lpr/common_source/common.c b/usr.sbin/lpr/common_source/common.c index 9b87dfa..c9c276d 100644 --- a/usr.sbin/lpr/common_source/common.c +++ b/usr.sbin/lpr/common_source/common.c @@ -139,6 +139,8 @@ getq(const struct printer *pp, struct jobqueue *(*namelist[])) * and dividing it by a multiple of the minimum size entry. */ arraysz = (stbuf.st_size / 24); + if (arraysz < 16) + arraysz = 16; queue = (struct jobqueue **)malloc(arraysz * sizeof(struct jobqueue *)); if (queue == NULL) goto errdone; |