emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: master b5f17fe07c6: * admin/unidata/emoji-zwj.awk: Avoid sprint buff


From: Robert Pluim
Subject: Re: master b5f17fe07c6: * admin/unidata/emoji-zwj.awk: Avoid sprint buffer overflow
Date: Sat, 03 Jun 2023 13:18:18 +0200

>>>>> On Sat,  3 Jun 2023 06:58:23 -0400 (EDT), Mattias Engdegård 
>>>>> <mattiase@acm.org> said:

    Mattias> branch: master
    Mattias> commit b5f17fe07c6624380ba8d0c7a400a6b89f225209
    Mattias> Author: Mattias Engdegård <mattiase@acm.org>
    Mattias> Commit: Mattias Engdegård <mattiase@acm.org>

    Mattias>     * admin/unidata/emoji-zwj.awk: Avoid sprint buffer overflow
    
    Mattias>     Some AWK implementations have a fixed buffer for sprintf; for 
mawk the
    Mattias>     default size is 8192 bytes.  Hoist a string concatenation from
    Mattias>     a sprintf call to avoid running into that limit.  See 
discussion at
    Mattias>     
https://lists.gnu.org/archive/html/emacs-devel/2023-06/msg00090.html .
    Mattias> ---
    Mattias>  admin/unidata/emoji-zwj.awk | 2 +-
    Mattias>  1 file changed, 1 insertion(+), 1 deletion(-)

    Mattias> diff --git a/admin/unidata/emoji-zwj.awk 
b/admin/unidata/emoji-zwj.awk
    Mattias> index f13f796bcac..4b648aa675e 100644
    Mattias> --- a/admin/unidata/emoji-zwj.awk
    Mattias> +++ b/admin/unidata/emoji-zwj.awk
    Mattias> @@ -106,7 +106,7 @@ END {
 
    Mattias>       for (elt in ch)
    Mattias>      {
    Mattias> -        entries = 
sprintf("%s\n\"\\N{U+%s}\\N{U+FE0E}\"\n\"\\N{U+%s}\\N{U+FE0F}\"", vec[elt], 
elt, elt)
    Mattias> +        entries = vec[elt] 
sprintf("\n\"\\N{U+%s}\\N{U+FE0E}\"\n\"\\N{U+%s}\\N{U+FE0F}\"", elt, elt)
    Mattias>          printf("(#x%s .\n,(eval-when-compile 
(regexp-opt\n'(\n%s\n))))\n", elt, entries)
    Mattias>      }
    Mattias>       print "))"

Fair enough. I always forget that awk can do string concatenation (and
this should go to emacs-29 as well).

Robert
-- 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]