PING.

Any love for good old ed(1)?

Sören Tempel <[email protected]> wrote:
> Pinging again as this is still unfixed and the proposed fix is rather trivial.
> 
> Sören Tempel <[email protected]> wrote:
> > Ping.
> > 
> > [email protected] wrote:
> > > From: Sören Tempel <[email protected]>
> > > 
> > > The memcpy invocations in the subCommand function, modified by this
> > > commit, previously used memcpy with overlapping memory regions. This is
> > > undefined behavior. On Alpine Linux, it causes BusyBox ed to crash since
> > > we compile BusyBox with -D_FORTIFY_SOURCE=2 and our fortify-headers
> > > implementation catches this source of undefined behavior [0]. The issue
> > > can only be triggered if the replacement string is the same size or
> > > shorter than the old string.
> > > 
> > > Looking at the code, it seems to me that a memmove(3) is what was
> > > actually intended here, this commit modifies the code accordingly.
> > > 
> > > [0]: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13504
> > > ---
> > >  editors/ed.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/editors/ed.c b/editors/ed.c
> > > index 209ce9942..4a84f7433 100644
> > > --- a/editors/ed.c
> > > +++ b/editors/ed.c
> > > @@ -720,7 +720,7 @@ static void subCommand(const char *cmd, int num1, int 
> > > num2)
> > >           if (deltaLen <= 0) {
> > >                   memcpy(&lp->data[offset], newStr, newLen);
> > >                   if (deltaLen) {
> > > -                         memcpy(&lp->data[offset + newLen],
> > > +                         memmove(&lp->data[offset + newLen],
> > >                                   &lp->data[offset + oldLen],
> > >                                   lp->len - offset - oldLen);
> > >  
> > > _______________________________________________
> > > busybox mailing list
> > > [email protected]
> > > http://lists.busybox.net/mailman/listinfo/busybox
> > _______________________________________________
> > busybox mailing list
> > [email protected]
> > http://lists.busybox.net/mailman/listinfo/busybox
> _______________________________________________
> busybox mailing list
> [email protected]
> http://lists.busybox.net/mailman/listinfo/busybox
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to