diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2013-01-19 20:04:06 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2013-01-19 20:04:06 +0000 |
commit | 93672047394421a7c085b3ffcc047c299b846ac8 (patch) | |
tree | b566553cc7a64114637d6aa2d12d3ee1d6d3c62f | |
parent | 08b87de1bb899fd1d8d8524f9333cc09bf8f3561 (diff) |
Do not divide by zero in _dl_findhint() if there is a valid hints file but
no buckets in it (could happen if the administrator reruns ldconfig with
bogus paths). ok matthew@ kurt@ drahn
-rw-r--r-- | libexec/ld.so/sod.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libexec/ld.so/sod.c b/libexec/ld.so/sod.c index 9c3c64df3c9..5fc908853c4 100644 --- a/libexec/ld.so/sod.c +++ b/libexec/ld.so/sod.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sod.c,v 1.24 2012/06/12 20:32:17 matthew Exp $ */ +/* $OpenBSD: sod.c,v 1.25 2013/01/19 20:04:05 miod Exp $ */ /* * Copyright (c) 1993 Paul Kranenburg @@ -213,6 +213,9 @@ _dl_findhint(char *name, int major, int minor, char *preferred_path) if (!(HINTS_VALID)) return NULL; + if (hheader->hh_nbucket == 0) + return NULL; + bp = hbuckets + (_dl_hinthash(name, major, minor) % hheader->hh_nbucket); while (1) { |