diff options
author | cperciva <cperciva@FreeBSD.org> | 2005-11-20 00:50:30 +0000 |
---|---|---|
committer | cperciva <cperciva@FreeBSD.org> | 2005-11-20 00:50:30 +0000 |
commit | 87a93f24a5d4b20135e2985c15f2eb454a87f90f (patch) | |
tree | ad00b3e35fa74549712d1671839ab2ddf98580b2 /usr.sbin/portsnap | |
parent | 70aecc46b03b3ab9e96b969cc32e100f1eb3a98c (diff) | |
download | FreeBSD-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.c | 7 |
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--) |