client: fix potential NULL dereference
[fio.git] / client.c
index 7fdae2babad7b6f9894b59852a3350aff3c0a5a1..edc02a0a13416c04fbb546bf2c05799a440bbf84 100644 (file)
--- a/client.c
+++ b/client.c
@@ -271,6 +271,9 @@ int fio_client_add_ini_file(void *cookie, const char *ini_file, int remote)
        size_t new_size;
        void *new_files;
 
+       if (!client)
+               return 1;
+
        dprint(FD_NET, "client <%s>: add ini %s\n", client->hostname, ini_file);
 
        new_size = (client->nr_files + 1) * sizeof(struct client_file);
@@ -952,7 +955,7 @@ static void convert_agg(struct disk_util_agg *agg)
        agg->io_ticks           = le32_to_cpu(agg->io_ticks);
        agg->time_in_queue      = le32_to_cpu(agg->time_in_queue);
        agg->slavecount         = le32_to_cpu(agg->slavecount);
-       agg->max_util.u.f       = fio_uint64_to_double(__le64_to_cpu(agg->max_util.u.i));
+       agg->max_util.u.f       = fio_uint64_to_double(le64_to_cpu(agg->max_util.u.i));
 }
 
 static void convert_dus(struct disk_util_stat *dus)
@@ -1154,8 +1157,9 @@ static void handle_start(struct fio_client *client, struct fio_net_cmd *cmd)
 
        client->state = Client_started;
        client->jobs = le32_to_cpu(pdu->jobs);
+       client->nr_stat = le32_to_cpu(pdu->stat_outputs);
 
-       sum_stat_clients++;
+       sum_stat_clients += client->nr_stat;
 }
 
 static void handle_stop(struct fio_client *client, struct fio_net_cmd *cmd)