[Midnightbsd-cvs] src [12293] trunk/lib/libmport/bundle_read_install_pkg.c: fix issues with absolute path sample files.

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Tue Dec 31 19:05:40 EST 2019


Revision: 12293
          http://svnweb.midnightbsd.org/src/?rev=12293
Author:   laffer1
Date:     2019-12-31 19:05:39 -0500 (Tue, 31 Dec 2019)
Log Message:
-----------
fix issues with absolute path sample files.

Modified Paths:
--------------
    trunk/lib/libmport/bundle_read_install_pkg.c

Modified: trunk/lib/libmport/bundle_read_install_pkg.c
===================================================================
--- trunk/lib/libmport/bundle_read_install_pkg.c	2020-01-01 00:02:55 UTC (rev 12292)
+++ trunk/lib/libmport/bundle_read_install_pkg.c	2020-01-01 00:05:39 UTC (rev 12293)
@@ -236,8 +236,10 @@
 	char nonSample[FILENAME_MAX * 2];
 	char secondFile[FILENAME_MAX];
 
- 	strlcpy(nonSample, file, FILENAME_MAX * 2);
-	(void) snprintf(nonSample, FILENAME_MAX, "%s%s/%s", mport->root, cwd, file);
+	if (file[0] != '/')
+		(void) snprintf(nonSample, FILENAME_MAX, "%s%s/%s", mport->root, cwd, file);
+	else
+		strlcpy(nonSample, file, FILENAME_MAX * 2);
 	char** fileargv = parse_sample(nonSample);
 
 	if (fileargv[1] != '\0') {
@@ -497,7 +499,11 @@
 				if (mport_bundle_read_next_entry(bundle, &entry) != MPORT_OK)
 					goto ERROR;
 
-				(void) snprintf(file, FILENAME_MAX, "%s%s/%s", mport->root, cwd, e->data);
+				if (e->data[0] == '/') {
+					(void) snprintf(file, FILENAME_MAX, "%s", e->data);
+				} else {
+					(void) snprintf(file, FILENAME_MAX, "%s%s/%s", mport->root, cwd, e->data);
+				}
 
 				if (e->type == ASSET_SAMPLE)
 					for (int ch = 0; ch < FILENAME_MAX; ch++) {



More information about the Midnightbsd-cvs mailing list