From d8d63e80996714d1ffadcaff785352842dfef44e Mon Sep 17 00:00:00 2001
From: Simon McVittie <smcv@collabora.com>
Date: Wed, 13 Dec 2017 19:04:32 +0000
Subject: [PATCH] resolve_link: Use build_filename

This avoids reinventing it.

Signed-off-by: Simon McVittie <smcv@collabora.com>
---
 utils/utils.c | 17 ++---------------
 1 file changed, 2 insertions(+), 15 deletions(-)

diff --git a/utils/utils.c b/utils/utils.c
index 296c1f196..38ec3fad6 100644
--- a/utils/utils.c
+++ b/utils/utils.c
@@ -228,30 +228,17 @@ int resolve_link(const char *prefix, char *path)
 
         if( rl[0] == '/' )
         {
-            const int pl = strlen( prefix );
-
-            if( pl + rv > PATH_MAX )
+            if( build_filename( path, PATH_MAX, prefix, rl, NULL ) >= PATH_MAX )
             {
-                rv = -1;
                 goto out;
             }
-
-            safe_strncpy( path, prefix, PATH_MAX );
-            safe_strncpy( path + pl, rl, PATH_MAX - pl );
         }
         else
         {
-            const int pl = strlen( dir );
-
-            if( pl + rv + 1 > PATH_MAX )
+            if( build_filename( path, PATH_MAX, dir, rl, NULL ) >= PATH_MAX )
             {
-                rv = -1;
                 goto out;
             }
-
-            safe_strncpy( path, dir, PATH_MAX );
-            path[ pl ] = '/';
-            safe_strncpy( path + pl + 1, rl, PATH_MAX - pl - 1 );
         }
     }
 
-- 
GitLab