[libvirt] [PATCH 3/5] util: file: Simplify logic of shortuct cases in virFindFileInPath

Peter Krempa pkrempa at redhat.com
Thu Nov 14 10:43:31 UTC 2019


Combine the terms in the two sets of nested conditionals an don't reuse
a variable for a more obvious control flow.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/util/virfile.c | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/src/util/virfile.c b/src/util/virfile.c
index 072a299b39..c077639c1c 100644
--- a/src/util/virfile.c
+++ b/src/util/virfile.c
@@ -1644,20 +1644,16 @@ virFindFileInPath(const char *file)
     /* if we are passed an absolute path (starting with /), return a
      * copy of that path, after validating that it is executable
      */
-    if (IS_ABSOLUTE_FILE_NAME(file)) {
-        char *ret = NULL;
-        if (virFileIsExecutable(file))
-            ret = g_strdup(file);
-        return ret;
-    }
+    if (IS_ABSOLUTE_FILE_NAME(file) && virFileIsExecutable(file))
+        return g_strdup(file);

     /* If we are passed an anchored path (containing a /), then there
      * is no path search - it must exist in the current directory
      */
-    if (strchr(file, '/')) {
-        if (virFileIsExecutable(file))
-            ignore_value(virFileAbsPath(file, &path));
-        return path;
+    if (strchr(file, '/') && virFileIsExecutable(file)) {
+        char *abspath = NULL;
+        ignore_value(virFileAbsPath(file, &abspath));
+        return abspath;
     }

     /* copy PATH env so we can tweak it */
-- 
2.23.0




More information about the libvir-list mailing list