diff -u samba-3.5.4/source3/lib/netapi/cm.c samba-3.5.4_test/source3/lib/netapi/cm.c --- samba-3.5.4/source3/lib/netapi/cm.c 2010-06-18 14:01:04.000000000 +0200 +++ samba-3.5.4_test/source3/lib/netapi/cm.c 2010-09-06 23:44:53.000000000 +0200 @@ -99,10 +99,13 @@ WERROR libnetapi_shutdown_cm(struct libnetapi_ctx *ctx) { - struct client_pipe_connection *p; + struct client_pipe_connection *p, *next; - for (p = pipe_connections; p; p = p->next) { + for (p = pipe_connections; p; p = next) { + next = p->next; cli_shutdown(p->cli); + DLIST_REMOVE(pipe_connections, p); + TALLOC_FREE(p); } return WERR_OK; diff -u samba-3.5.4/source3/lib/netapi/libnetapi.c samba-3.5.4_test/source3/lib/netapi/libnetapi.c --- samba-3.5.4/source3/lib/netapi/libnetapi.c 2010-06-18 14:01:04.000000000 +0200 +++ samba-3.5.4_test/source3/lib/netapi/libnetapi.c 2010-09-07 00:25:39.000000000 +0200 @@ -71,6 +71,8 @@ NDR_PRINT_OUT_DEBUG(NetJoinDomain, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -117,6 +119,8 @@ NDR_PRINT_OUT_DEBUG(NetUnjoinDomain, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -161,6 +165,8 @@ NDR_PRINT_OUT_DEBUG(NetGetJoinInformation, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -211,6 +217,8 @@ NDR_PRINT_OUT_DEBUG(NetGetJoinableOUs, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -259,6 +267,8 @@ NDR_PRINT_OUT_DEBUG(NetRenameMachineInDomain, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -303,6 +313,8 @@ NDR_PRINT_OUT_DEBUG(NetServerGetInfo, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -349,6 +361,8 @@ NDR_PRINT_OUT_DEBUG(NetServerSetInfo, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -393,6 +407,8 @@ NDR_PRINT_OUT_DEBUG(NetGetDCName, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -437,6 +453,8 @@ NDR_PRINT_OUT_DEBUG(NetGetAnyDCName, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -487,6 +505,8 @@ NDR_PRINT_OUT_DEBUG(DsGetDcName, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -533,6 +553,8 @@ NDR_PRINT_OUT_DEBUG(NetUserAdd, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -575,6 +597,8 @@ NDR_PRINT_OUT_DEBUG(NetUserDel, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -630,6 +654,8 @@ NDR_PRINT_OUT_DEBUG(NetUserEnum, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -676,6 +702,8 @@ NDR_PRINT_OUT_DEBUG(NetUserChangePassword, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -722,6 +750,8 @@ NDR_PRINT_OUT_DEBUG(NetUserGetInfo, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -770,6 +800,8 @@ NDR_PRINT_OUT_DEBUG(NetUserSetInfo, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -822,6 +854,8 @@ NDR_PRINT_OUT_DEBUG(NetUserGetGroups, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -870,6 +904,8 @@ NDR_PRINT_OUT_DEBUG(NetUserSetGroups, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -924,6 +960,8 @@ NDR_PRINT_OUT_DEBUG(NetUserGetLocalGroups, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -968,6 +1006,8 @@ NDR_PRINT_OUT_DEBUG(NetUserModalsGet, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1014,6 +1054,8 @@ NDR_PRINT_OUT_DEBUG(NetUserModalsSet, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1066,6 +1108,8 @@ NDR_PRINT_OUT_DEBUG(NetQueryDisplayInformation, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1112,6 +1156,8 @@ NDR_PRINT_OUT_DEBUG(NetGroupAdd, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1154,6 +1200,8 @@ NDR_PRINT_OUT_DEBUG(NetGroupDel, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1207,6 +1255,8 @@ NDR_PRINT_OUT_DEBUG(NetGroupEnum, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1255,6 +1305,8 @@ NDR_PRINT_OUT_DEBUG(NetGroupSetInfo, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1301,6 +1353,8 @@ NDR_PRINT_OUT_DEBUG(NetGroupGetInfo, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1345,6 +1399,8 @@ NDR_PRINT_OUT_DEBUG(NetGroupAddUser, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1389,6 +1445,8 @@ NDR_PRINT_OUT_DEBUG(NetGroupDelUser, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1444,6 +1502,8 @@ NDR_PRINT_OUT_DEBUG(NetGroupGetUsers, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1492,6 +1552,8 @@ NDR_PRINT_OUT_DEBUG(NetGroupSetUsers, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1538,6 +1600,8 @@ NDR_PRINT_OUT_DEBUG(NetLocalGroupAdd, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1580,6 +1644,8 @@ NDR_PRINT_OUT_DEBUG(NetLocalGroupDel, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1626,6 +1692,8 @@ NDR_PRINT_OUT_DEBUG(NetLocalGroupGetInfo, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1674,6 +1742,8 @@ NDR_PRINT_OUT_DEBUG(NetLocalGroupSetInfo, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1727,6 +1797,8 @@ NDR_PRINT_OUT_DEBUG(NetLocalGroupEnum, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1775,6 +1847,8 @@ NDR_PRINT_OUT_DEBUG(NetLocalGroupAddMembers, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1823,6 +1897,8 @@ NDR_PRINT_OUT_DEBUG(NetLocalGroupDelMembers, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1878,6 +1954,8 @@ NDR_PRINT_OUT_DEBUG(NetLocalGroupGetMembers, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1926,6 +2004,8 @@ NDR_PRINT_OUT_DEBUG(NetLocalGroupSetMembers, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -1968,6 +2048,8 @@ NDR_PRINT_OUT_DEBUG(NetRemoteTOD, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -2014,6 +2096,8 @@ NDR_PRINT_OUT_DEBUG(NetShareAdd, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -2058,6 +2142,8 @@ NDR_PRINT_OUT_DEBUG(NetShareDel, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -2111,6 +2197,8 @@ NDR_PRINT_OUT_DEBUG(NetShareEnum, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -2157,6 +2245,8 @@ NDR_PRINT_OUT_DEBUG(NetShareGetInfo, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -2205,6 +2295,8 @@ NDR_PRINT_OUT_DEBUG(NetShareSetInfo, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -2247,6 +2339,8 @@ NDR_PRINT_OUT_DEBUG(NetFileClose, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -2293,6 +2387,8 @@ NDR_PRINT_OUT_DEBUG(NetFileGetInfo, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -2350,6 +2446,8 @@ NDR_PRINT_OUT_DEBUG(NetFileEnum, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -2398,6 +2496,8 @@ NDR_PRINT_OUT_DEBUG(NetShutdownInit, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -2438,6 +2538,8 @@ NDR_PRINT_OUT_DEBUG(NetShutdownAbort, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -2484,6 +2586,8 @@ NDR_PRINT_OUT_DEBUG(I_NetLogonControl, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; } @@ -2532,6 +2636,8 @@ NDR_PRINT_OUT_DEBUG(I_NetLogonControl2, &r); } + libnetapi_shutdown_cm(ctx); + return r.out.result; }