From 246143b69f9dee307a1d4c26f5c793fc2d10a932 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Fri, 26 Oct 2012 12:53:45 -0600 Subject: [PATCH] build: fix type-punning bug With older gcc and 64-bit size_t, the compiler issues a real warning: rpc/virnetserverservice.c:277: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] Introduced in commit 0cc79255. Depending on machine endianness, this warning represents a real bug that could mis-interpret the value by a factor of 2^32. I don't know why I couldn't get newer gcc to report the same warning message. * src/rpc/virnetserverservice.c (virNetServerServiceNewPostExecRestart): Use temporary instead. --- src/rpc/virnetserverservice.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/rpc/virnetserverservice.c b/src/rpc/virnetserverservice.c index 8ac523cde2..31a9424d81 100644 --- a/src/rpc/virnetserverservice.c +++ b/src/rpc/virnetserverservice.c @@ -1,7 +1,7 @@ /* * virnetserverservice.c: generic network RPC server service * - * Copyright (C) 2006-2011 Red Hat, Inc. + * Copyright (C) 2006-2012 Red Hat, Inc. * Copyright (C) 2006 Daniel P. Berrange * * This library is free software; you can redistribute it and/or @@ -274,11 +274,12 @@ virNetServerServicePtr virNetServerServiceNewPostExecRestart(virJSONValuePtr obj goto error; } if (virJSONValueObjectGetNumberUint(object, "nrequests_client_max", - (unsigned int *)&svc->nrequests_client_max) < 0) { + &n) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Missing nrequests_client_max field in JSON state document")); goto error; } + svc->nrequests_client_max = n; if (!(socks = virJSONValueObjectGet(object, "socks"))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", -- 2.39.5