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.