MOUNT: when processing the mount response, check status before dereferencing data...
authorRonnie Sahlberg <ronniesahlberg@gmail.com>
Sun, 4 Nov 2012 23:55:05 +0000 (15:55 -0800)
committerRonnie Sahlberg <ronniesahlberg@gmail.com>
Sun, 4 Nov 2012 23:55:05 +0000 (15:55 -0800)
If status is non-zero in the mount callback, then the datapointer might be NULL
so we should not dereference it into an exports pointer before we have checked the status.

This would otherwise cause crashes.

lib/libnfs-sync.c

index 09e197ad312fcf3a5c6ee77a8ad9fcde72aff454..5f044dd1f2e417c2d1905125df194cb91cffd88b 100644 (file)
@@ -1146,7 +1146,7 @@ int nfs_link(struct nfs_context *nfs, const char *oldpath, const char *newpath)
 void mount_getexports_cb(struct rpc_context *mount_context, int status, void *data, void *private_data)
 {
        struct sync_cb_data *cb_data = private_data;
-       exports export = *(exports *)data;
+       exports export;
 
        cb_data->is_finished = 1;
        cb_data->status = status;
@@ -1157,6 +1157,7 @@ void mount_getexports_cb(struct rpc_context *mount_context, int status, void *da
                return;
        }
 
+       export = *(exports *)data;
        while (export != NULL) {
                exports new_export;