Buffer overflow in Weave
Andreas Scherer
andreas_tex at freenet.de
Sun Jul 16 19:53:20 CEST 2023
Hi, Benjamin,
> The Weave program has a buffer overflow
> These two lines are a simple reproducer
If I append a few more 'b's, I see
$ weave bo.web
This is WEAVE, Version 4.5 (TeX Live 2023)
Writing the output file...
Writing the index...Done.
(No errors were found.)
and the resulting bo.tex has a lot of crap in its index section. So
there's definitively something wrong.
The 'original' WEAVE (https://github.com/ascherer/web) issues a suitable
diagnostic
$ /opt/github/web/weave bo.web /dev/null bo.tex
This is WEAVE, Version 4.5
! Input line too long. (l.2)
%\bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Writing the output file...
! Input line too long. (l.2)
%\bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Writing the index...Done.
(Pardon me, but I think I spotted something wrong.)
but in bo.tex the overlong line is clobbered.
For completeness:
$ /opt/github/web/tangle bo.web /dev/null bo.pas
This is TANGLE, Version 4.6
! Input line too long. (l.2)
%\bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
! No output was specified.
(Pardon me, but I think I spotted something wrong.)
and
$ tangle bo.web
This is TANGLE, Version 4.6 (TeX Live 2023)
! No output was specified.
(Did you see the warning message above?)
with correct (non-)output in both cases.
Moreover, CWEB 4.9 has similar problems:
$ /opt/github/cweb/cweave bo.web
This is CWEAVE (Version 4.9)
! Input line too long. (l. 2)
%\bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Writing the output file...
! Input line too long. (l. 2)
%\bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
! Line had to be broken (output l. 37):
%zeroWNexpOWNunopWNbbbbbbbbbbbbbbbbbbbbb
�U%zeroWNexpOWNunopWN
! Line had to be broken (output l. 38):
%bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Writing the index...
Done.
(Pardon me, but I think I spotted something wrong.)
$ cweave -v bo.web
This is CWEAVE, Version 4.9 (TeX Live 2024)
*** buffer overflow detected ***: terminated
Abgebrochen (Speicherabzug geschrieben)
$ /opt/github/cweb/ctangle bo.web
This is CTANGLE (Version 4.9)
! Input line too long. (l. 2)
%\bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
! No program text was specified.
(Pardon me, but I think I spotted something wrong.)
$ ctangle -v bo.web
This is CTANGLE, Version 4.9 (TeX Live 2024)
! No program text was specified.
(Did you see the warning message above?)
CWEB 3.64c is only margonally better:
$ /opt/github/cweb/cweave bo.web
This is CWEAVE (Version 3.64)
! Input line too long. (l. 2)
%\bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
! Input line too long. (l. 3)
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Writing the output file...
! Input line too long. (l. 2)
%\bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
! Input line too long. (l. 3)
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Writing the index...
Done.
(Pardon me, but I think I spotted something wrong.)
$ /opt/github/cweb/ctangle bo.web
This is CTANGLE (Version 3.64)
! Input line too long. (l. 2)
%\bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
! Input line too long. (l. 3)
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
! No program text was specified.
(Pardon me, but I think I spotted something wrong.)
I'll try to investigate. Thanks for the report.
Regards, Andreas
More information about the tex-live
mailing list.