<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Mike,<div class=""><br class=""></div><div class="">I filed: <a href="https://bugzilla.tianocore.org/show_bug.cgi?id=3166" class="">https://bugzilla.tianocore.org/show_bug.cgi?id=3166</a></div><div class=""><br class=""></div><div class="">Thanks,</div><div class=""><br class=""></div><div class="">Andrew Fish<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jan 11, 2021, at 11:08 PM, Andrew Fish via <a href="http://groups.io" class="">groups.io</a> <<a href="mailto:afish=apple.com@groups.io" class="">afish=apple.com@groups.io</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta charset="UTF-8" class=""><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br class="Apple-interchange-newline"><br class=""><blockquote type="cite" class=""><div class="">On Jan 11, 2021, at 5:51 PM, Michael D Kinney <<a href="mailto:michael.d.kinney@intel.com" class="">michael.d.kinney@intel.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="WordSection1" style="page: WordSection1; caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="">Hi Andrew,<o:p class=""></o:p></span></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class=""><o:p class=""> </o:p></span></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="">Isn’t the more typical condition for running into this CR ASSERT is that the calling code cached a copy of a handle that the calling code had freed before the call was made?<o:p class=""></o:p></span></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class=""><o:p class=""> </o:p></span></div></div></div></blockquote><div class=""><br class=""></div><div class="">Mike,</div><div class=""><br class=""></div><div class="">Well in my case the UserHandle is coming from a gBS->HandleProtocol() call in the BDS that is looping on PCI devices. So things seem like they should be stable, but there is a high end TB Monitor attached so maybe something glitched on ThuderBolt? </div><div class=""><br class=""></div><div class="">If I’m not mistaken this code is walking the entire Handle database at the time it is called to find a match. All passing in a bogus handle would do is force you to walk the entire handle list? </div><div class=""><br class=""></div><div class="">This failed on a RELEASE ROM so I’ve got limited logging and LTO is on so hard to extract all the details from the crash frame. </div><br class=""><blockquote type="cite" class=""><div class=""><div class="WordSection1" style="page: WordSection1; caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="">I agree it look like there may be a tiny window for a timer event.<span class=""> <span class="Apple-converted-space"> </span></span>But even if we move the lock before<span class="Apple-converted-space"> </span><span class="SpellE">CoreValidateHandle</span>(), the timer could be signaled<o:p class=""></o:p></span></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="">right before the call was made.<span class=""> <span class="Apple-converted-space"> </span></span>Once again, seems like the design of the calling code and its events need to make sure a freed handle is never passed in.<o:p class=""></o:p></span></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class=""><o:p class=""> </o:p></span></div></div></div></blockquote><div class=""><br class=""></div><div class="">Well as I mentioned it looked to me like this code is mostly just walking the entire gHandleList looking for a match? So passing in a stale handle would just force a walk of the entire list. I don’t see much difference between that and looking for the last handle? </div><div class=""><br class=""></div><div class="">Actually I’ve got an lldb command to dump the handle database. I can see the UserHandle in the database when I connect via the debugger so gHandleList looks valid at the time of the crash. This is a little more evidence I’m hitting a stale Link pointer. </div><div class=""><br class=""></div><div class="">Thanks,</div><div class=""><br class=""></div><div class="">Andrew Fish</div><br class=""><blockquote type="cite" class=""><div class=""><div class="WordSection1" style="page: WordSection1; caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="">Mike<o:p class=""></o:p></span></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class=""><o:p class=""> </o:p></span></div><div class=""><div class="" style="border-style: solid none none; border-top-width: 1pt; border-top-color: rgb(225, 225, 225); padding: 3pt 0in 0in;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><b class=""><span class="">From:</span></b><span class=""><span class="Apple-converted-space"> </span><a href="mailto:devel@edk2.groups.io" class="">devel@edk2.groups.io</a><span class="Apple-converted-space"> </span><<a href="mailto:devel@edk2.groups.io" class="">devel@edk2.groups.io</a>><span class="Apple-converted-space"> </span><b class="">On Behalf Of<span class="Apple-converted-space"> </span></b>Andrew Fish via<span class="Apple-converted-space"> </span><a href="http://groups.io/" class="">groups.io</a><br class=""><b class="">Sent:</b><span class="Apple-converted-space"> </span>Monday, January 11, 2021 4:04 PM<br class=""><b class="">To:</b><span class="Apple-converted-space"> </span>edk2-devel-groups-io <<a href="mailto:devel@edk2.groups.io" class="">devel@edk2.groups.io</a>><br class=""><b class="">Subject:</b><span class="Apple-converted-space"> </span>[edk2-devel] Is CoreValidateHandle() safe?<o:p class=""></o:p></span></div></div></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="">I just hit the CR ASSERT [1] in CoreValidateHandle(). It looks like the IHANDLE was a use after free as it was a Pool buffer that was to small to be an IHANDLE and it did not have a valid handle. <o:p class=""></o:p></span></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class=""><o:p class=""> </o:p></span></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="">I’m trying to understand why it is safe to walk the gHandleList without a lock? Seems like a local could cache a pointer and an event could remove a handle and Link would point to a stale handle?<o:p class=""></o:p></span></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class=""><o:p class=""> </o:p></span></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="">Kind of feels like I’m missing something?<o:p class=""></o:p></span></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class=""><o:p class=""> </o:p></span></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="">[1]<span class="Apple-converted-space"> </span><a href="https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Core/Dxe/Hand/Handle.c#L64" class="" style="color: purple; text-decoration: underline;">https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Core/Dxe/Hand/Handle.c#L64</a><o:p class=""></o:p></span></div></div><div class=""><table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse; box-sizing: border-box; border-spacing: 0px; tab-size: 8; caret-color: rgb(36, 41, 46);"><tbody class=""><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L63" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC63" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);">EFI_STATUS<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L64" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC64" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; box-shadow: inset 2px 0 0 var(--color-blob-line-highlight-border); overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="pl-en"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);">CoreValidateHandle</span></span><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><span class="Apple-converted-space"> </span>(<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L65" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC65" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><span class=""> <span class="Apple-converted-space"> </span></span>IN<span class=""> <span class="Apple-converted-space"> </span></span>EFI_HANDLE<span class="">        <span class="Apple-converted-space"> </span></span><span class="">       </span>UserHandle<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L66" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC66" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><span class=""> <span class="Apple-converted-space"> </span></span>)<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L67" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC67" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);">{<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L68" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC68" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><span class=""> <span class="Apple-converted-space"> </span></span>IHANDLE<span class="">            <span class="Apple-converted-space"> </span></span>*<span class="pl-c1">Handle</span>;<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L69" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC69" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><span class=""> <span class="Apple-converted-space"> </span></span>LIST_ENTRY<span class="">         <span class="Apple-converted-space"> </span></span>*Link;<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L70" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC70" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><o:p class=""> </o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L71" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC71" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><span class=""> </span><span class="pl-k">if</span><span class="Apple-converted-space"> </span>(UserHandle ==<span class="Apple-converted-space"> </span><span class="pl-c1">NULL</span>) {<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L72" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC72" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><span class="">  <span class="Apple-converted-space"> </span></span><span class=""> </span><span class="pl-k">return</span><span class="Apple-converted-space"> </span>EFI_INVALID_PARAMETER;<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L73" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC73" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><span class=""> <span class="Apple-converted-space"> </span></span>}<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L74" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC74" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><o:p class=""> </o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L75" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC75" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><span class=""> </span><span class="pl-k">for</span><span class="Apple-converted-space"> </span>(Link =<span class="Apple-converted-space"> </span><span class="pl-smi">gHandleList</span>.<span class="pl-smi">BackLink</span>; Link != &<span class="pl-smi">gHandleList</span>; Link = Link-><span class="pl-smi">BackLink</span>) {<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L76" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC76" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><span class="">  <span class="Apple-converted-space"> </span></span><span class=""> </span><span class="pl-c1">Handle</span><span class="Apple-converted-space"> </span>=<span class="Apple-converted-space"> </span><span class="pl-c1">CR</span><span class="Apple-converted-space"> </span>(Link, IHANDLE, AllHandles, EFI_HANDLE_SIGNATURE);<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L77" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC77" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><span class="">  <span class="Apple-converted-space"> </span></span><span class=""> </span><span class="pl-k">if</span><span class="Apple-converted-space"> </span>(<span class="pl-c1">Handle</span><span class="Apple-converted-space"> </span>== (IHANDLE *) UserHandle) {<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L78" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC78" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><span class="">    <span class="Apple-converted-space"> </span></span><span class=""> </span><span class="pl-k">return</span><span class="Apple-converted-space"> </span>EFI_SUCCESS;<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L79" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC79" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><span class="">   <span class="Apple-converted-space"> </span></span>}<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L80" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC80" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><span class=""> <span class="Apple-converted-space"> </span></span>}<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L81" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC81" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><o:p class=""> </o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L82" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC82" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);"><span class=""> </span><span class="pl-k">return</span><span class="Apple-converted-space"> </span>EFI_INVALID_PARAMETER;<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L83" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td valign="top" id="LC83" class="" style="padding: 0in 7.5pt; box-sizing: border-box; color: var(--color-text-primary); word-wrap: normal; overflow: visible;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; line-height: 15pt;"><span class="" style="font-size: 9pt; font-family: Consolas; color: rgb(36, 41, 46);">}<o:p class=""></o:p></span></div></td></tr><tr class="" style="box-sizing: border-box;"><td width="50" nowrap="" valign="top" id="L84" class="" style="width: 37.5pt; padding: 0in 7.5pt; box-sizing: border-box; min-width: 50px; color: var(--color-diff-blob-num-text); cursor: pointer; -webkit-user-select: none;"></td><td class="" style="padding: 0.75pt;"></td></tr></tbody></table><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class=""><o:p class=""> </o:p></span></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="">Thanks,<o:p class=""></o:p></span></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class=""><o:p class=""> </o:p></span></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="">Andrew Fish<o:p class=""></o:p></span></div></div><div class=""><p class="MsoNormal" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"></p></div></div></div></blockquote></div><br class="" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"></div></blockquote></div><br class=""></div></body></html>


 <div width="1" style="color:white;clear:both">_._,_._,_</div> <hr> Groups.io Links:<p>   You receive all messages sent to this group.    <p> <a target="_blank" href="https://edk2.groups.io/g/devel/message/70273">View/Reply Online (#70273)</a> |    |  <a target="_blank" href="https://groups.io/mt/79612010/1813853">Mute This Topic</a>  | <a href="https://edk2.groups.io/g/devel/post">New Topic</a><br>    <a href="https://edk2.groups.io/g/devel/editsub/1813853">Your Subscription</a> | <a href="mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> |  <a href="https://edk2.groups.io/g/devel/unsub">Unsubscribe</a>  [edk2-devel-archive@redhat.com]<br> <div width="1" style="color:white;clear:both">_._,_._,_</div>