Author: imp
Date: Thu Aug 31 15:53:27 2017
New Revision: 323056
URL: https://svnweb.freebsd.org/changeset/base/323056
Log:
Fix printing File() nodes in device paths.
Device paths encoded into the FILEPATH_DEVICE_PATH are UCS2 not
ASCII/UTF8. Convert to utf8 and print that when printing File
paths. Also, since File may be at the end of a long device path,
output File() around the path so it doesn't just show up as random
nodes that might accidentally match real node paths names and cause
errors.
Modified:
head/lib/libefivar/efivar-dp-format.c
Modified: head/lib/libefivar/efivar-dp-format.c
==============================================================================
--- head/lib/libefivar/efivar-dp-format.c Thu Aug 31 14:27:09 2017
(r323055)
+++ head/lib/libefivar/efivar-dp-format.c Thu Aug 31 15:53:27 2017
(r323056)
@@ -36,6 +36,8 @@ __FBSDID("$FreeBSD$");
#include <stdio.h>
#include <string.h>
+#include "efichar.h"
+
#include "efi-osdep.h"
#include "efivar-dp.h"
@@ -1872,9 +1874,12 @@ DevPathToTextFilePath (
)
{
FILEPATH_DEVICE_PATH *Fp;
+ char *name = NULL;
Fp = DevPath;
- UefiDevicePathLibCatPrint (Str, "%s", Fp->PathName);
+ ucs2_to_utf8(Fp->PathName, &name);
+ UefiDevicePathLibCatPrint (Str, "File(%s)", name);
+ free(name);
}
/**
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"