Hi Marc-André,
On 08/23/2017 01:19 PM, Marc-André Lureau wrote:
libvhost-user is meant to be free of glib dependency. Make sure it is
by droping qemu/osdep.h (which included glib.h)
This fixes a bad malloc()/g_free() pair.
Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com>
---
contrib/libvhost-user/libvhost-user.c | 25 ++++++++++++++++++++++---
1 file changed, 22 insertions(+), 3 deletions(-)
diff --git a/contrib/libvhost-user/libvhost-user.c
b/contrib/libvhost-user/libvhost-user.c
index 35fa0c5e56..bb294c6ef7 100644
--- a/contrib/libvhost-user/libvhost-user.c
+++ b/contrib/libvhost-user/libvhost-user.c
@@ -13,11 +13,22 @@
* later. See the COPYING file in the top-level directory.
*/
-#include <qemu/osdep.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <stdarg.h>
+#include <errno.h>
+#include <string.h>
+#include <assert.h>
+#include <inttypes.h>
+#include <sys/types.h>
+#include <sys/socket.h>
#include <sys/eventfd.h>
+#include <sys/mman.h>
#include <linux/vhost.h>
#include "qemu/atomic.h"
+#include "qemu/compiler.h"
#include "libvhost-user.h"
@@ -34,6 +45,14 @@
} \
} while (0)
+#ifndef MIN
+#define MIN(x, y) ({ \
+ typeof(x) _min1 = (x); \
+ typeof(y) _min2 = (y); \
+ (void) (&_min1 == &_min2); \
+ _min1 < _min2 ? _min1 : _min2; })
why not add this in qemu/compiler.h instead?
+#endif
+
static const char *
vu_request_to_string(int req)
{
@@ -81,7 +100,7 @@ vu_panic(VuDev *dev, const char *msg, ...)
va_list ap;
va_start(ap, msg);
- buf = g_strdup_vprintf(msg, ap);
+ vasprintf(&buf, msg, ap);
va_end(ap);
dev->broken = true;
@@ -840,7 +859,7 @@ vu_dispatch(VuDev *dev)
success = true;
end:
- g_free(vmsg.data);
+ free(vmsg.data);
return success;
}