summaryrefslogtreecommitdiff
path: root/sys/dev/digi
diff options
context:
space:
mode:
authorSam Leffler <sam@FreeBSD.org>2005-02-25 20:50:20 +0000
committerSam Leffler <sam@FreeBSD.org>2005-02-25 20:50:20 +0000
commitd40b07dfe4f1b86e93fb6cd509997ced7c066c84 (patch)
treea0a4e245cc14dca6bf688d09e3971fc6009e26e7 /sys/dev/digi
parent3b30e64d221433efae9dee6280e8fd3fd5e0b42c (diff)
Notes
Diffstat (limited to 'sys/dev/digi')
-rw-r--r--sys/dev/digi/digi.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/digi/digi.c b/sys/dev/digi/digi.c
index 5ecc6018689d..7f68c02f1758 100644
--- a/sys/dev/digi/digi.c
+++ b/sys/dev/digi/digi.c
@@ -792,9 +792,13 @@ digi_loadmoduledata(struct digi_softc *sc)
sym = malloc(modlen + 10, M_TEMP, M_WAITOK);
snprintf(sym, modlen + 10, "digi_mod_%s", sc->module);
- if ((symptr = linker_file_lookup_symbol(lf, sym, 0)) == NULL)
- printf("digi_%s.ko: Symbol `%s' not found\n", sc->module, sym);
+ symptr = linker_file_lookup_symbol(lf, sym, 0);
free(sym, M_TEMP);
+ if (symptr == NULL) {
+ printf("digi_%s.ko: Symbol `%s' not found\n", sc->module, sym);
+ linker_file_unload(lf, LINKER_UNLOAD_FORCE);
+ return (EINVAL);
+ }
digi_mod = (struct digi_mod *)symptr;
if (digi_mod->dm_version != DIGI_MOD_VERSION) {