Page MenuHomeFreeBSD

D44633.id136692.diff
No OneTemporary

D44633.id136692.diff

diff --git a/sys/netgraph/ng_socket.c b/sys/netgraph/ng_socket.c
--- a/sys/netgraph/ng_socket.c
+++ b/sys/netgraph/ng_socket.c
@@ -285,11 +285,15 @@
if (ng_findtype(mkp->type) == NULL) {
char filename[NG_TYPESIZ + 3];
int fileid;
+ bool loaded;
/* Not found, try to load it as a loadable module. */
snprintf(filename, sizeof(filename), "ng_%s",
mkp->type);
error = kern_kldload(curthread, filename, &fileid);
+ loaded = (error == 0);
+ if (error == EEXIST)
+ error = 0;
if (error != 0) {
free(msg, M_NETGRAPH_MSG);
goto release;
@@ -298,9 +302,10 @@
/* See if type has been loaded successfully. */
if (ng_findtype(mkp->type) == NULL) {
free(msg, M_NETGRAPH_MSG);
- (void)kern_kldunload(curthread, fileid,
- LINKER_UNLOAD_NORMAL);
- error = ENXIO;
+ if (loaded)
+ (void)kern_kldunload(curthread, fileid,
+ LINKER_UNLOAD_NORMAL);
+ error = ENXIO;
goto release;
}
}

File Metadata

Mime Type
text/plain
Expires
Fri, Jul 24, 8:12 PM (10 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35443078
Default Alt Text
D44633.id136692.diff (977 B)

Event Timeline