[libvirt] [PATCH] virnetdevopenvswitch: Don't call strlen() twice on the same string

Andrea Bolognani abologna at redhat.com
Wed Jan 27 09:41:15 UTC 2016


Commit 871e10f fixed a memory corruption error, but called strlen()
twice on the same string to do so. Even though the compiler is
probably smart enough to optimize the second call away, having a
single invocation makes the code slightly cleaner.

Suggested-by: Michal Privoznik <mprivozn at redhat.com>
---

How about this? :)

 src/util/virnetdevopenvswitch.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/util/virnetdevopenvswitch.c b/src/util/virnetdevopenvswitch.c
index db01dcf..9283bbb 100644
--- a/src/util/virnetdevopenvswitch.c
+++ b/src/util/virnetdevopenvswitch.c
@@ -207,6 +207,7 @@ int virNetDevOpenvswitchRemovePort(const char *brname ATTRIBUTE_UNUSED, const ch
 int virNetDevOpenvswitchGetMigrateData(char **migrate, const char *ifname)
 {
     virCommandPtr cmd = NULL;
+    size_t len;
     int ret = -1;
 
     cmd = virCommandNewArgList(OVSVSCTL, "--timeout=5", "--if-exists", "get", "Interface",
@@ -223,8 +224,9 @@ int virNetDevOpenvswitchGetMigrateData(char **migrate, const char *ifname)
     }
 
     /* Wipeout the newline, if it exists */
-    if (strlen(*migrate) > 0)
-        (*migrate)[strlen(*migrate) - 1] = '\0';
+    len = strlen(*migrate);
+    if (len > 0)
+        (*migrate)[len - 1] = '\0';
 
     ret = 0;
  cleanup:
-- 
2.5.0




More information about the libvir-list mailing list