init: fix double free of pid_file
[fio.git] / init.c
diff --git a/init.c b/init.c
index 1ba8fe6e5b08f359d92f582ff10b51099d3ef46e..324dc7bdb3bb5780fe537163fdc183a8bebe92bc 100644 (file)
--- a/init.c
+++ b/init.c
@@ -564,22 +564,15 @@ static unsigned long long get_rand_start_delay(struct thread_data *td)
        return delayrange;
 }
 
+/*
+ * <3 Johannes
+ */
 static unsigned int gcd(unsigned int m, unsigned int n)
 {
-       unsigned int r;
+       if (!n)
+               return m;
 
-       if (!m || !n)
-               return 0;
-
-       do {
-               r = m % n;
-               if (!r)
-                       break;
-               m = n;
-               n = r;
-       } while (1);
-
-       return n;
+       return gcd(n, m % n);
 }
 
 /*
@@ -2724,9 +2717,6 @@ int parse_cmd_line(int argc, char *argv[], int client_type)
        }
 
 out_free:
-       if (pid_file)
-               free(pid_file);
-
        return ini_idx;
 }