Matthias Bolte wrote:
Oops, however that happened... good find. The clang analyzer seems
to
be a valuable tool.
The fix for this is to swap "goto cleanup;" and "result = -1;" (see
attached patch).
Matthias
diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c
index 724e945..0919774 100644
--- a/src/esx/esx_vi.c
+++ b/src/esx/esx_vi.c
@@ -764,9 +764,9 @@ esxVI_Enumeration_Deserialize(virConnectPtr conn,
return result;
failure:
- goto cleanup;
-
result = -1;
+
+ goto cleanup;
}
Of course! I should have seen that.
Here's the corrected patch:
From b29fab8d6a8eece3ecea14b5cfa598d3b90b14e3 Mon Sep 17 00:00:00 2001
From: Matthias Bolte <matthias.bolte(a)googlemail.com>
Date: Thu, 3 Sep 2009 16:35:47 +0200
Subject: [PATCH] esx_vi: return -1 upon failure, as intended
* src/esx/esx_vi.c (esxVI_Enumeration_Deserialize): Fix
reversed goto and result=-1 statements.
---
src/esx/esx_vi.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c
index 0da908b..10dd7fd 100644
--- a/src/esx/esx_vi.c
+++ b/src/esx/esx_vi.c
@@ -856,9 +856,8 @@ esxVI_Enumeration_Deserialize(virConnectPtr conn,
return result;
failure:
- goto cleanup;
-
result = -1;
+ goto cleanup;
}
--
1.6.4.2.395.ge3d52