summaryrefslogtreecommitdiff
path: root/examples/depmod.pl
diff options
context:
space:
mode:
authorMike Frysinger2010-11-16 07:15:00 -0500
committerMike Frysinger2010-11-16 07:15:00 -0500
commit8ce1ad3097ca6b92293ca767f6e4ddd98ad0d90e (patch)
treefc89a095caf49d166a9f80da738beb966c1e947e /examples/depmod.pl
parent2e9aeae4dbc7bd45640ac472ee6ecb7eaf89fe8d (diff)
downloadbusybox-8ce1ad3097ca6b92293ca767f6e4ddd98ad0d90e.zip
busybox-8ce1ad3097ca6b92293ca767f6e4ddd98ad0d90e.tar.gz
depmod.pl: add recursive sanity check
If modules contain circular dependencies, the depmod script will follow the circle forever. So add a simple sanity check to abort rather than chew up the CPU. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'examples/depmod.pl')
-rwxr-xr-xexamples/depmod.pl3
1 files changed, 3 insertions, 0 deletions
diff --git a/examples/depmod.pl b/examples/depmod.pl
index 8c6548d..f324b12 100755
--- a/examples/depmod.pl
+++ b/examples/depmod.pl
@@ -173,6 +173,9 @@ sub add_mod_deps
$depth .= " ";
warn "${depth}loading deps of module: $this_module\n" if $verbose;
+ if (length($depth) > 50) {
+ die "too much recursion (circular dependencies in modules?)";
+ }
foreach my $md (keys %{$mod->{$this_module}}) {
add_mod_deps ($depth, $mod, $mod2, $module, $md);