repositories
/
deb_libnfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add an assert to track if we try to use an rpc_context after it has been destroyed
[deb_libnfs.git]
/
lib
/
libnfs-sync.c
diff --git
a/lib/libnfs-sync.c
b/lib/libnfs-sync.c
index 82578f1e9a07fbfb39798ad88986065e9ebcf3cd..4e671cb98351244e9021a6661a0b800362353a1a 100644
(file)
--- a/
lib/libnfs-sync.c
+++ b/
lib/libnfs-sync.c
@@
-38,6
+38,7
@@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <assert.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
@@
-67,6
+68,8
@@
static void wait_for_reply(struct rpc_context *rpc, struct sync_cb_data *cb_data
{
struct pollfd pfd;
{
struct pollfd pfd;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
while (!cb_data->is_finished) {
pfd.fd = rpc_get_fd(rpc);
while (!cb_data->is_finished) {
pfd.fd = rpc_get_fd(rpc);
@@
-135,6
+138,8
@@
int nfs_mount(struct nfs_context *nfs, const char *server, const char *export)
struct sync_cb_data cb_data;
struct rpc_context *rpc = nfs_get_rpc_context(nfs);
struct sync_cb_data cb_data;
struct rpc_context *rpc = nfs_get_rpc_context(nfs);
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
cb_data.is_finished = 0;
if (nfs_mount_async(nfs, server, export, mount_cb, &cb_data) != 0) {
cb_data.is_finished = 0;
if (nfs_mount_async(nfs, server, export, mount_cb, &cb_data) != 0) {
@@
-1149,6
+1154,8
@@
void mount_getexports_cb(struct rpc_context *mount_context, int status, void *da
struct sync_cb_data *cb_data = private_data;
exports export;
struct sync_cb_data *cb_data = private_data;
exports export;
+ assert(mount_context->magic == RPC_CONTEXT_MAGIC);
+
cb_data->is_finished = 1;
cb_data->status = status;
cb_data->return_data = NULL;
cb_data->is_finished = 1;
cb_data->status = status;
cb_data->return_data = NULL;
@@
-1230,6
+1237,8
@@
void callit_cb(struct rpc_context *rpc, int status, void *data _U_, void *privat
char hostdd[16];
struct nfs_server_list *srvr;
char hostdd[16];
struct nfs_server_list *srvr;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
if (status == RPC_STATUS_CANCEL) {
return;
}
if (status == RPC_STATUS_CANCEL) {
return;
}
@@
-1283,6
+1292,8
@@
static int send_nfsd_probes(struct rpc_context *rpc, INTERFACE_INFO *InterfaceLi
{
int i=0;
{
int i=0;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
for(i = 0; i < numIfs; i++)
{
SOCKADDR *pAddress;
for(i = 0; i < numIfs; i++)
{
SOCKADDR *pAddress;
@@
-1413,6
+1424,8
@@
static int send_nfsd_probes(struct rpc_context *rpc, struct ifconf *ifc, struct
{
char *ptr;
{
char *ptr;
+ assert(rpc->magic == RPC_CONTEXT_MAGIC);
+
for (ptr =(char *)(ifc->ifc_buf); ptr < (char *)(ifc->ifc_buf) + ifc->ifc_len; ) {
struct ifreq *ifr;
char bcdd[16];
for (ptr =(char *)(ifc->ifc_buf); ptr < (char *)(ifc->ifc_buf) + ifc->ifc_len; ) {
struct ifreq *ifr;
char bcdd[16];