<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/BaseTools/Source/C, branch edk2_master</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=edk2_master</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=edk2_master'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2026-01-06T06:27:41+00:00</updated>
<entry>
<title>BaseTools/Source/C/Makefiles: Detect cycle in pids</title>
<updated>2026-01-06T06:27:41+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2026-01-01T20:50:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=f26760f5e20326cae5dc645a9be14928cca59ad7'/>
<id>urn:sha1:f26760f5e20326cae5dc645a9be14928cca59ad7</id>
<content type='text'>
Update _get_win32_parent_processes() to detect a
cycle in parent process ids that can cause
_get_win32_parent_processes() to never return.

If a pid cycle is detected, then return the list
of parent process ids detected up to the point
the cycle is detected.

GitHub Actions builds using windows-2025 can
reproduce this issue once in a while. It shows
up as job that runs until a timeout. If the job
is canceled, the logs show a python stack in the
loop in _get_win32_parent_processes().

Signed-off-by: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
</content>
</entry>
<entry>
<title>BaseTools/GenFw: Ignore R_*_NONE relocations on all architectures</title>
<updated>2025-12-24T10:58:20+00:00</updated>
<author>
<name>Ard Biesheuvel</name>
<email>ardb@kernel.org</email>
</author>
<published>2025-12-15T11:41:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=8d0afac1d225290f5bc6948b34cf268820dab5c8'/>
<id>urn:sha1:8d0afac1d225290f5bc6948b34cf268820dab5c8</id>
<content type='text'>
The ELF psABIs for all architectures stipulate that R_*_NONE relocations
require no action at relocation time, and merely exist to declare a
dependency on a symbol in a way that cannot be conveyed by the code
itself (i.e., using an actual symbol reference). Given that EFI PE/COFF
images are always fully linked binaries, such a dependency cannot be
translated, and there are no known reasons why this would be necessary.

So instead of ignoring such relocations specifically on x86_64 only,
ignore them on all architectures when converting ELF binaries to
PE/COFF.

Fixes: #11878

Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
</content>
</entry>
<entry>
<title>BaseTools,UefiPayloadPkg: Replace deprecated R_AARCH64_NONE value</title>
<updated>2025-12-24T10:58:20+00:00</updated>
<author>
<name>Ard Biesheuvel</name>
<email>ardb@kernel.org</email>
</author>
<published>2025-12-15T11:35:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=ddd7855a7a7d387ed8ab6cdb2d88163b7ba9e5c2'/>
<id>urn:sha1:ddd7855a7a7d387ed8ab6cdb2d88163b7ba9e5c2</id>
<content type='text'>
For nebulous reasons, the original ELF psABI deviated from common sense,
and decided to #define R_AARCH64_NONE as '256', in spite of the fact
that no other architecture uses anything other than 0x0.

This has now been fixed in the psABI, so fix it in our code as well.

Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
</content>
</entry>
<entry>
<title>BaseTools: GNUMakefiles must use CMD.EXE in Windows</title>
<updated>2025-12-24T02:03:38+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2025-12-16T20:33:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=79fdd2b82af96963cd38d157494df1668f16a281'/>
<id>urn:sha1:79fdd2b82af96963cd38d157494df1668f16a281</id>
<content type='text'>
Use $(OS) in all GNUMakefiles to detect if the GNUMakefile
is being used in a Windows OS. If a Windows OS is detected,
then override SHELL to use cmd.exe. This prevents make
utility from using sh.exe if sh.exe happens to be in PATH.

If sh.exe is used, then backslash (\) characters in file
paths are removed and builds break for files not found.

Signed-off-by: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
</content>
</entry>
<entry>
<title>BaseTools: Fix multiple security vulnerabilities (Defense in Depth)</title>
<updated>2025-12-22T04:53:27+00:00</updated>
<author>
<name>20000419</name>
<email>lzy00419@163.com</email>
</author>
<published>2025-12-18T08:38:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=7c9fd884be4e94bd4ad8e998d85bb52d6f319e72'/>
<id>urn:sha1:7c9fd884be4e94bd4ad8e998d85bb52d6f319e72</id>
<content type='text'>
Signed-off-by: 20000419 &lt;lzy00419@163.com&gt;
</content>
</entry>
<entry>
<title>BaseTools/VfrCompile: Minor code cleanup</title>
<updated>2025-12-03T12:29:51+00:00</updated>
<author>
<name>Mike Beaton</name>
<email>mjsbeaton@gmail.com</email>
</author>
<published>2025-11-20T07:46:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=53cca9ed9995abdac9fed01aa54c4bf5195f48aa'/>
<id>urn:sha1:53cca9ed9995abdac9fed01aa54c4bf5195f48aa</id>
<content type='text'>
There are no functional changes in this commit. It adds non-functional
minor code cleanups made while tracking down the bugs fixed in the
preceding commits.

 - Fix spelling 'arrary' -&gt; 'array' where it occurs in the tool code and comments.
   - When renaming ExtractFieldNameAndArrary to ExtractFieldNameAndArrayIdx,
we fix the typo and also clarify what the method does: it returns the field name
and the array index when present. Since it is always used to populate a local
variable named ArrayIdx, we stick to that spelling in the renamed method.
 - Add comment clarifying that mArrayNum holds array length (but again, don't
go for a bigger global rename).
 - Rename CVfrVarDataTypeDB::GetFieldWidth to GetFieldType. It is only used
once, and the new name correctly matches what it does.

Signed-off-by: Mike Beaton &lt;mjsbeaton@gmail.com&gt;
</content>
</entry>
<entry>
<title>BaseTools/VfrCompile: Fix null pointer deref when dumping internal types</title>
<updated>2025-12-03T12:29:51+00:00</updated>
<author>
<name>Mike Beaton</name>
<email>mjsbeaton@gmail.com</email>
</author>
<published>2025-11-18T23:18:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=f79cfc8eafa56dbc4619e2e764e5cf56a4babc6d'/>
<id>urn:sha1:f79cfc8eafa56dbc4619e2e764e5cf56a4babc6d</id>
<content type='text'>
Internal types such as pFormIdField, pFormSetGuidField have
no associated field type, however the Dump command assumes
that all types do. This causes null pointer dereferencing which
can be caught by sanitizers.

De facto, the field type for these types was already
dumped as &lt;null&gt;, this achieves the same safely.

Signed-off-by: Mike Beaton &lt;mjsbeaton@gmail.com&gt;
</content>
</entry>
<entry>
<title>BaseTools/VfrCompile: Fix bit field access logic</title>
<updated>2025-12-03T12:29:51+00:00</updated>
<author>
<name>Mike Beaton</name>
<email>mjsbeaton@gmail.com</email>
</author>
<published>2025-11-18T23:11:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=5701cf673d39ea15a2c632e140884c8fa241aec8'/>
<id>urn:sha1:5701cf673d39ea15a2c632e140884c8fa241aec8</id>
<content type='text'>
The previous logic for accessing bit fields is wrong when the bit field
starts beyond the first byte, in a storage unit larger than a byte.

This caused unaligned memory accesses which can be caught
by sanitizers.

We also bump the tool minor version number to reflect a functional bugfix.

Signed-off-by: Mike Beaton &lt;mjsbeaton@gmail.com&gt;
</content>
</entry>
<entry>
<title>BaseTools/VfrCompile: Prevent uninitialized memory access</title>
<updated>2025-12-03T12:29:51+00:00</updated>
<author>
<name>Mike Beaton</name>
<email>mjsbeaton@gmail.com</email>
</author>
<published>2025-11-21T22:23:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=618868512e7ac0457d052fc73f670bfede15b657'/>
<id>urn:sha1:618868512e7ac0457d052fc73f670bfede15b657</id>
<content type='text'>
When traversing through the field definition of a nested type, such
as "MY_EFI_BITS_VARSTORE_DATA.BitsData.NestBitCheckbox", in method
CVfrVarDataTypeDB::GetDataFieldInfo, the mBitWidth member of the
parent (e.g. BitsData) of a bitfield is accessed, even though it
is not itself a bit field and thus its mBitWidth has never been
initialised.

This is not necessary, the Size and Type of each parent object
were being calculated then overwritten by the next lower object,
so we can just avoid calculating these until the final one which
we actually need.

This behaviour was caught by clang MSan.

Signed-off-by: Mike Beaton &lt;mjsbeaton@gmail.com&gt;
</content>
</entry>
<entry>
<title>BaseTools/VfrCompile: Fix EFI_GUID unaligned access</title>
<updated>2025-12-03T12:29:51+00:00</updated>
<author>
<name>Mike Beaton</name>
<email>mjsbeaton@gmail.com</email>
</author>
<published>2025-11-26T21:45:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=12751d48e215de110a245151f76d3deff39bfe70'/>
<id>urn:sha1:12751d48e215de110a245151f76d3deff39bfe70</id>
<content type='text'>
The memmove in SetClassGuid at line 684 generates a
`store to misaligned address` runtime warning when
VfrCompile is compiled with clang UBSan.

We can avoid generating code which stores to a misaligned
address in a least a couple of other ways than done here,
including casting the destination pointer of the memmove
to (VOID *), or compiling with `-fno-builtin-memmove`.

However, maintaining an unaligned pointer to an aligned
type is, strictly speaking, undefined behaviour in the
c/c++ standard (regardless of how it is or is not then
accessed).

So here we resolve the actual incorrect semantics of this
part of the code (and thereby fix the unaligned access) by
introducing a PACKED_EFI_GUID type in VfrUtilityLib.h, and
using it for this unaligned access.

Signed-off-by: Mike Beaton &lt;mjsbeaton@gmail.com&gt;
</content>
</entry>
</feed>
