emacs-devel
[Top][All Lists]
Advanced

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

Re: Bindat can exhaust memory when unpacking to vector


From: Stefan Monnier
Subject: Re: Bindat can exhaust memory when unpacking to vector
Date: Tue, 19 Mar 2024 17:08:41 -0400
User-agent: Gnus/5.13 (Gnus v5.13)

>>     (defconst foo-bindat-spec
>>       (bindat-type
>>        (length uint 32)
>>        (data vec (bounded 1 length 1234))))
>>
>> so we signal an error if the length is less than 1 or larger than 1234.
>
> Sure.  But I'm not sure which kind of helpers would be the most
> beneficial for general use.  Like said, I don't have that many examples,
> and for my few validation cases I have found the "unit type" to be good
> enough.

Same here.

>>> I also played around with the idea of patching bindat.el itself to do
>>> trivial checking against the input data size, like this:
>>> [...]
>> Actually, this is a nice solution, I think.
>> It seems hypothetical enough that I think we should go with your patch.
> Feel free to apply it in whatever form you want, if you think it is
> appropriate.

I did, thank you :-)

>>> Checking should be optional and somehow programmable, perhaps
>>> a separate "checked vec" type?  (I don't have any good, concrete
>>> ideas, sorry).
>> I don't see the benefit of not-checking, to be honest.
> I probably thought about efficiency here.

In theory it can have an impact, but I think in practice it's hard to
imagine a case where it will be significant.


        Stefan




reply via email to

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