On 10/24/16 20:47, Jordan Justen wrote:
> On 2016-10-24 00:58:46, Ard Biesheuvel wrote:
>> On 21 October 2016 at 22:27, Laszlo Ersek <[email protected]> wrote:
>>> AsciiStrCat() is deprecated / disabled under the
>>> DISABLE_NEW_DEPRECATED_INTERFACES feature test macro.
>>>
>>> The "Str" variable serves no particular purpose in the MRegList() and
>>> ThumbMRegList() functions; replace it with the pointed-to "mMregListStr" /
>>> "mThumbMregListStr" global variable (as appropriate), so that the new
>>> AsciiStrCatS() calls are as clear as possible.
>>>
>>> Cc: Ard Biesheuvel <[email protected]>
>>> Cc: Leif Lindholm <[email protected]>
>>> Cc: Michael Zimmermann <[email protected]>
>>> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=164
>>> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=165
>>> Contributed-under: TianoCore Contribution Agreement 1.0
>>> Signed-off-by: Laszlo Ersek <[email protected]>
>>
>> Reviewed-by: Ard Biesheuvel <[email protected]>
>>
>>> ---
>>>
>>> Notes:
>>> - build-tested only
>>>
>>> - Michael (CC'd) had posted a patch earlier for this:
>>> <https://lists.01.org/pipermail/edk2-devel/2016-August/000489.html>,
>>> but I only noticed that now that he pointed it out, in
>>> <https://lists.01.org/pipermail/edk2-devel/2016-October/003121.html>.
>>> I'll leave it to the ArmPkg maintainers to choose one; I don't feel
>>> strongly either way.
>>>
>>
>> Apologies to Michael for ignoring his contribution, but I'd be happy
>> for Laszlo to merge this as part of the series.
>>
>>> ArmPkg/Library/ArmDisassemblerLib/ArmDisassembler.c | 22
>>> +++++++++-----------
>>> ArmPkg/Library/ArmDisassemblerLib/ThumbDisassembler.c | 20
>>> ++++++++----------
>>> 2 files changed, 19 insertions(+), 23 deletions(-)
>>>
>>> diff --git a/ArmPkg/Library/ArmDisassemblerLib/ArmDisassembler.c
>>> b/ArmPkg/Library/ArmDisassemblerLib/ArmDisassembler.c
>>> index 29a8d4438622..8551edc379c1 100644
>>> --- a/ArmPkg/Library/ArmDisassemblerLib/ArmDisassembler.c
>>> +++ b/ArmPkg/Library/ArmDisassemblerLib/ArmDisassembler.c
>>> @@ -88,12 +88,10 @@ MRegList (
>>> )
>>> {
>>> UINTN Index, Start, End;
>>> - CHAR8 *Str;
>>> BOOLEAN First;
>>>
>>> - Str = mMregListStr;
>>> - *Str = '\0';
>>> - AsciiStrCat (Str, "{");
>>> + mMregListStr[0] = '\0';
>>> + AsciiStrCatS (mMregListStr, sizeof mMregListStr, "{");
>
> Maybe drop the extra space after the function name throughout this
> patch. (There are 2 instead of just one.)
Yep, I saw that; I couldn't decide whether to remove them or to leave
them undisturbed.
I will remove them.
Thanks!
Laszlo
>
> -Jordan
>
>>> for (Index = 0, First = TRUE; Index <= 15; Index++) {
>>> if ((OpCode & (1 << Index)) != 0) {
>>> Start = End = Index;
>>> @@ -102,25 +100,25 @@ MRegList (
>>> }
>>>
>>> if (!First) {
>>> - AsciiStrCat (Str, ",");
>>> + AsciiStrCatS (mMregListStr, sizeof mMregListStr, ",");
>>> } else {
>>> First = FALSE;
>>> }
>>>
>>> if (Start == End) {
>>> - AsciiStrCat (Str, gReg[Start]);
>>> - AsciiStrCat (Str, ", ");
>>> + AsciiStrCatS (mMregListStr, sizeof mMregListStr, gReg[Start]);
>>> + AsciiStrCatS (mMregListStr, sizeof mMregListStr, ", ");
>>> } else {
>>> - AsciiStrCat (Str, gReg[Start]);
>>> - AsciiStrCat (Str, "-");
>>> - AsciiStrCat (Str, gReg[End]);
>>> + AsciiStrCatS (mMregListStr, sizeof mMregListStr, gReg[Start]);
>>> + AsciiStrCatS (mMregListStr, sizeof mMregListStr, "-");
>>> + AsciiStrCatS (mMregListStr, sizeof mMregListStr, gReg[End]);
>>> }
>>> }
>>> }
>>> if (First) {
>>> - AsciiStrCat (Str, "ERROR");
>>> + AsciiStrCatS (mMregListStr, sizeof mMregListStr, "ERROR");
>>> }
>>> - AsciiStrCat (Str, "}");
>>> + AsciiStrCatS (mMregListStr, sizeof mMregListStr, "}");
>>>
>>> // BugBug: Make caller pass in buffer it is cleaner
>>> return mMregListStr;
>>> diff --git a/ArmPkg/Library/ArmDisassemblerLib/ThumbDisassembler.c
>>> b/ArmPkg/Library/ArmDisassemblerLib/ThumbDisassembler.c
>>> index 5bad3afcfbf6..86d5083cb189 100644
>>> --- a/ArmPkg/Library/ArmDisassemblerLib/ThumbDisassembler.c
>>> +++ b/ArmPkg/Library/ArmDisassemblerLib/ThumbDisassembler.c
>>> @@ -397,12 +397,10 @@ ThumbMRegList (
>>> )
>>> {
>>> UINTN Index, Start, End;
>>> - CHAR8 *Str;
>>> BOOLEAN First;
>>>
>>> - Str = mThumbMregListStr;
>>> - *Str = '\0';
>>> - AsciiStrCat (Str, "{");
>>> + mThumbMregListStr[0] = '\0';
>>> + AsciiStrCatS (mThumbMregListStr, sizeof mThumbMregListStr, "{");
>>>
>>> for (Index = 0, First = TRUE; Index <= 15; Index++) {
>>> if ((RegBitMask & (1 << Index)) != 0) {
>>> @@ -412,24 +410,24 @@ ThumbMRegList (
>>> }
>>>
>>> if (!First) {
>>> - AsciiStrCat (Str, ",");
>>> + AsciiStrCatS (mThumbMregListStr, sizeof mThumbMregListStr, ",");
>>> } else {
>>> First = FALSE;
>>> }
>>>
>>> if (Start == End) {
>>> - AsciiStrCat (Str, gReg[Start]);
>>> + AsciiStrCatS (mThumbMregListStr, sizeof mThumbMregListStr,
>>> gReg[Start]);
>>> } else {
>>> - AsciiStrCat (Str, gReg[Start]);
>>> - AsciiStrCat (Str, "-");
>>> - AsciiStrCat (Str, gReg[End]);
>>> + AsciiStrCatS (mThumbMregListStr, sizeof mThumbMregListStr,
>>> gReg[Start]);
>>> + AsciiStrCatS (mThumbMregListStr, sizeof mThumbMregListStr, "-");
>>> + AsciiStrCatS (mThumbMregListStr, sizeof mThumbMregListStr,
>>> gReg[End]);
>>> }
>>> }
>>> }
>>> if (First) {
>>> - AsciiStrCat (Str, "ERROR");
>>> + AsciiStrCatS (mThumbMregListStr, sizeof mThumbMregListStr, "ERROR");
>>> }
>>> - AsciiStrCat (Str, "}");
>>> + AsciiStrCatS (mThumbMregListStr, sizeof mThumbMregListStr, "}");
>>>
>>> // BugBug: Make caller pass in buffer it is cleaner
>>> return mThumbMregListStr;
>>> --
>>> 2.9.2
>>>
>>>
>> _______________________________________________
>> edk2-devel mailing list
>> [email protected]
>> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel