]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
build: fix mingw build
authorEric Blake <eblake@redhat.com>
Mon, 17 Aug 2015 23:03:40 +0000 (16:03 -0700)
committerEric Blake <eblake@redhat.com>
Mon, 17 Aug 2015 23:03:40 +0000 (16:03 -0700)
Ever since commit e44b0269, 64-bit mingw compilation fails with:

../../src/util/virprocess.c: In function 'virProcessGetPids':
../../src/util/virprocess.c:628:50: error: passing argument 4 of 'virStrToLong_i' from incompatible pointer type [-Werror=incompatible-pointer-types]
         if (virStrToLong_i(ent->d_name, NULL, 10, &tmp_pid) < 0)
                                                  ^
In file included from ../../src/util/virprocess.c:59:0:
../../src/util/virstring.h:53:5: note: expected 'int *' but argument is of type 'pid_t * {aka long long int *}'
 int virStrToLong_i(char const *s,
     ^
cc1: all warnings being treated as errors

Although mingw won't be using this function, it does compile the
file, and the fix is relatively simple.

* src/util/virprocess.c (virProcessGetPids): Don't assume pid_t
fits in int.

Signed-off-by: Eric Blake <eblake@redhat.com>
src/util/virprocess.c

index 8fa7a9b2a4897a59bb2d80754795800f978c2828..77a038a9177648de8e5287f4e755b208402f8915 100644 (file)
@@ -619,14 +619,16 @@ int virProcessGetPids(pid_t pid, size_t *npids, pid_t **pids)
         goto cleanup;
 
     while ((value = virDirRead(dir, &ent, taskPath)) > 0) {
+        long long tmp;
         pid_t tmp_pid;
 
         /* Skip . and .. */
         if (STRPREFIX(ent->d_name, "."))
             continue;
 
-        if (virStrToLong_i(ent->d_name, NULL, 10, &tmp_pid) < 0)
+        if (virStrToLong_ll(ent->d_name, NULL, 10, &tmp) < 0)
             goto cleanup;
+        tmp_pid = tmp;
 
         if (VIR_APPEND_ELEMENT(*pids, *npids, tmp_pid) < 0)
             goto cleanup;