summaryrefslogtreecommitdiff
path: root/libexec/ld.so/sod.c
diff options
context:
space:
mode:
authorDale Rahn <drahn@cvs.openbsd.org>2003-10-26 23:23:13 +0000
committerDale Rahn <drahn@cvs.openbsd.org>2003-10-26 23:23:13 +0000
commit61012626cf6d3de009cf8e8d9434b0acfc18b3fc (patch)
tree427ef2140d2dbd9c508d84811d7279ebaa1d5f86 /libexec/ld.so/sod.c
parent6504d21c450a5c38d48c6e890e500cffa27fb827 (diff)
Work around a problem with shared libraries named as libX-A.B.so.X.Y.
Without this patch, the standard major:minor version matching failed. ok brad@
Diffstat (limited to 'libexec/ld.so/sod.c')
-rw-r--r--libexec/ld.so/sod.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/libexec/ld.so/sod.c b/libexec/ld.so/sod.c
index 9e8e3db24f5..2c709265ef5 100644
--- a/libexec/ld.so/sod.c
+++ b/libexec/ld.so/sod.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sod.c,v 1.18 2003/07/06 20:03:57 deraadt Exp $ */
+/* $OpenBSD: sod.c,v 1.19 2003/10/26 23:23:12 drahn Exp $ */
/*
* Copyright (c) 1993 Paul Kranenburg
@@ -95,8 +95,14 @@ _dl_build_sod(const char *name, struct sod *sodp)
break;
case 1:
/* 'so' extension */
- if (_dl_strcmp(tok, "so") != 0)
- goto backout;
+ if (_dl_strcmp(tok, "so") != 0) {
+ /*
+ * filenames such as libX-A.B.so.X.Y
+ * screw this up, decrement tuplet
+ * and try to continue.
+ */
+ tuplet--;
+ }
break;
case 2:
/* major version extension */