Merge pull request #44 from plieven/master
authorRonnie Sahlberg <ronniesahlberg@gmail.com>
Thu, 26 Dec 2013 19:00:04 +0000 (11:00 -0800)
committerRonnie Sahlberg <ronniesahlberg@gmail.com>
Thu, 26 Dec 2013 19:00:04 +0000 (11:00 -0800)
fix 3 flaws detected by valgrind and bump version to intermediate version

1  2 
lib/libnfs.c

diff --combined lib/libnfs.c
index 77645b140f0e17e18c8b372867f63ca478a14584,4eb18512900c420aaeb279c9f2e24317e8977074..029c9c94d1f82795a5104e456caec30fdbbc4e3e
@@@ -173,14 -173,14 +173,14 @@@ char *nfs_get_error(struct nfs_context 
        return rpc_get_error(nfs->rpc);
  };
  
 -int rpc_set_context_args(struct rpc_context *rpc, char *arg, char *val)
 +static int nfs_set_context_args(struct nfs_context *nfs, char *arg, char *val)
  {
        if (!strncmp(arg, "tcp-syncnt", 10)) {
 -              rpc_set_tcp_syncnt(rpc, atoi(val));
 +              rpc_set_tcp_syncnt(nfs_get_rpc_context(nfs), atoi(val));
        } else if (!strncmp(arg, "uid", 3)) {
 -              rpc_set_uid(rpc, atoi(val));
 +              rpc_set_uid(nfs_get_rpc_context(nfs), atoi(val));
        } else if (!strncmp(arg, "gid", 3)) {
 -              rpc_set_gid(rpc, atoi(val));
 +              rpc_set_gid(nfs_get_rpc_context(nfs), atoi(val));
        }
        return 0;
  }
@@@ -201,6 -201,7 +201,7 @@@ static struct nfs_url *nfs_parse_url(st
                return NULL;
        }
  
+       memset(urls, 0x00, sizeof(struct nfs_url));
        urls->server = strdup(url + 6);
        if (urls->server == NULL) {
                nfs_destroy_url(urls);
@@@ -277,11 -278,6 +278,6 @@@ flags
                }
        }
  
-       if (urls->server && strlen(urls->server) <= 1) {
-               free(urls->server);
-               urls->server = NULL;
-       }
        while (flagsp != NULL && *(flagsp+1) != 0) {
                strp = flagsp + 1;
                flagsp = strchr(strp, '&');
                if (strp2) {
                        *strp2 = 0;
                        strp2++;
 -                      rpc_set_context_args(nfs_get_rpc_context(nfs),
 -                                      strp, strp2);
 +                      nfs_set_context_args(nfs, strp, strp2);
                }
        }
  
+       if (urls->server && strlen(urls->server) <= 1) {
+               free(urls->server);
+               urls->server = NULL;
+       }
        return urls;
  }
  
@@@ -652,7 -654,7 +653,7 @@@ static void nfs_mount_7_cb(struct rpc_c
                return;
        }
  
 -      if (rpc_nfs_null_async(rpc, nfs_mount_8_cb, data) != 0) {
 +      if (rpc_nfs3_null_async(rpc, nfs_mount_8_cb, data) != 0) {
                data->cb(-ENOMEM, nfs, command_data, data->private_data);
                free_nfs_cb_data(data);
                return;
@@@ -726,7 -728,7 +727,7 @@@ static void nfs_mount_5_cb(struct rpc_c
                return;
        }
  
 -      if (rpc_mount_mnt_async(rpc, nfs_mount_6_cb, nfs->export, data) != 0) {
 +      if (rpc_mount3_mnt_async(rpc, nfs_mount_6_cb, nfs->export, data) != 0) {
                data->cb(-ENOMEM, nfs, command_data, data->private_data);
                free_nfs_cb_data(data);
                return;
@@@ -754,7 -756,7 +755,7 @@@ static void nfs_mount_4_cb(struct rpc_c
                return;
        }
  
 -      if (rpc_mount_null_async(rpc, nfs_mount_5_cb, data) != 0) {
 +      if (rpc_mount3_null_async(rpc, nfs_mount_5_cb, data) != 0) {
                data->cb(-ENOMEM, nfs, command_data, data->private_data);
                free_nfs_cb_data(data);
                return;
@@@ -3916,7 -3918,7 +3917,7 @@@ static void mount_export_4_cb(struct rp
                return;
        }
  
 -      if (rpc_mount_export_async(rpc, mount_export_5_cb, data) != 0) {
 +      if (rpc_mount3_export_async(rpc, mount_export_5_cb, data) != 0) {
                data->cb(rpc, -ENOMEM, command_data, data->private_data);
                free_mount_cb_data(data);
                return;