summaryrefslogtreecommitdiffstats
path: root/usr.sbin/portsnap
diff options
context:
space:
mode:
authorcperciva <cperciva@FreeBSD.org>2005-11-20 00:50:30 +0000
committercperciva <cperciva@FreeBSD.org>2005-11-20 00:50:30 +0000
commit87a93f24a5d4b20135e2985c15f2eb454a87f90f (patch)
treead00b3e35fa74549712d1671839ab2ddf98580b2 /usr.sbin/portsnap
parent70aecc46b03b3ab9e96b969cc32e100f1eb3a98c (diff)
downloadFreeBSD-src-87a93f24a5d4b20135e2985c15f2eb454a87f90f.zip
FreeBSD-src-87a93f24a5d4b20135e2985c15f2eb454a87f90f.tar.gz
An empty file does not have a positive number of lines.
Make sure that the number of lines read is non-zero before in order to avoid dumping core. Reported by: Wojciech A. Koszek Pointy hat to: cperciva
Diffstat (limited to 'usr.sbin/portsnap')
-rw-r--r--usr.sbin/portsnap/make_index/make_index.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/usr.sbin/portsnap/make_index/make_index.c b/usr.sbin/portsnap/make_index/make_index.c
index c02bba8..410b5b7 100644
--- a/usr.sbin/portsnap/make_index/make_index.c
+++ b/usr.sbin/portsnap/make_index/make_index.c
@@ -411,6 +411,7 @@ printport(PORT * p)
/*
* Algorithm:
* 1. Suck in all the data, splitting into fields.
+ * 1a. If there are no ports, there is no INDEX.
* 2. Sort the ports according to port directory.
* 3. Using a binary search, translate each dependency from a
* port directory name into a pointer to a port.
@@ -470,6 +471,12 @@ main(int argc, char *argv[])
err(1, "fclose(%s)", argv[1]);
/*
+ * 1a. If there are no ports, there is no INDEX.
+ */
+ if (pplen == 0)
+ return 0;
+
+ /*
* 2. Sort the ports according to port directory.
*/
for (i = pplen; i > 0; i--)
OpenPOWER on IntegriCloud