Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build fails with on latex/pdf output with '! You can't use `macro parameter character #' in horizontal mode.' #246

Open
kbeyls opened this issue May 15, 2024 · 0 comments

Comments

@kbeyls
Copy link
Member

kbeyls commented May 15, 2024

Last week, the build started failing on the latex/pdf output.
The relevant part of the output log seems to be:

 ! You can't use `macro parameter character #' in horizontal mode.
<argument> ##
             ##168
l.10 ...book/issues/168}{##168}}}{25}{section*.16}
                                                  %
? 
! Emergency stop.
<argument> ##
             ##168
l.10 ...book/issues/168}{##168}}}{25}{section*.16}
                                                  %
!  ==> Fatal error occurred, no output PDF file produced!

When investigating this further, it seems that in the build/book.tdo file, which is presumably produced to create a list of todos, there is an incorrect entry produced as follows:

\contentsline {todo}{7. The gadgets in the figure are made up, chosen to highlight that each gadget can end in a different type of indirect control flow transfer instruction. Consider replacing them with more realistic ones. \href {https://github.com/llsoftsec/llsoftsecbook/issues/165}{\#165}}{16}{section*.12}%
\contentsline {todo}{8. {Add more references to relevant research \href {https://github.com/llsoftsec/llsoftsecbook/issues/166}{\#166}}}{21}{section*.13}%
\contentsline {todo}{9. {Mention more Pointer Authentication uses in later section, and add link here \href {https://github.com/llsoftsec/llsoftsecbook/issues/167}{\#167}}}{21}{section*.14}%
\contentsline {todo}{10. {Add diagram to demonstrate how HWASAN works \href {https://github.com/llsoftsec/llsoftsecbook/issues/168}{##168}}}{25}{section*.16}%
\contentsline {todo}{11. {Consider adding a whole section on MTE and its applications \href {https://github.com/llsoftsec/llsoftsecbook/issues/169}{\#169}}}{26}{section*.17}%
\contentsline {todo}{12. Describe other mechanisms for detecting memory errors, both software-based (static analysis, library and buffer hardening) and hardware-based, e.g.~PAuth-based pointer integrity schemes, MTE etc \href {https://github.com/llsoftsec/llsoftsecbook/issues/170}{\#170}}{26}{section*.18}%

Note that for some reason, the reference to issue 168 in there is written as .. llsoftsecbook/issues/168}{##168}}}{25}{section*.16}%, instead of the correct .. llsoftsecbook/issues/168}{\#168}}}{25}{section*.16}% (backslash instead of hash character).

The content of the book that generates this hasn't been changed for a long time.

It seems that something changed in the texlive 2020 distribution we're using that introduced this erroneous behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant