Title: Issue · GitHub
Open Graph Title: Issue · cppcheck-opensource/simplecpp
X Title: Issue · cppcheck-opensource/simplecpp
Description: C++ preprocessor. Contribute to cppcheck-opensource/simplecpp development by creating an account on GitHub.
Open Graph Description: C++ preprocessor. Contribute to cppcheck-opensource/simplecpp development by creating an account on GitHub.
X Description: C++ preprocessor. Contribute to cppcheck-opensource/simplecpp development by creating an account on GitHub.
Opengraph URL: https://github.com/cppcheck-opensource/simplecpp
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"fuzzing crash in `simplecpp::Macro::expandToken()`","articleBody":"```cpp\n#define P(p)defined E##p\nP()\n```\n\n```\nsimplecpp.cpp:2086:59: runtime error: member call on null pointer of type 'const struct Token'\n #0 0x62ffeca183e7 in simplecpp::Macro::expandToken(simplecpp::TokenList*, simplecpp::Location const\u0026, simplecpp::Token const*, std::unordered_map\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e, simplecpp::Macro, std::hash\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e \u003e, std::equal_to\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e \u003e, std::allocator\u003cstd::pair\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e const, simplecpp::Macro\u003e \u003e \u003e const\u0026, std::set\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e, std::less\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e \u003e, std::allocator\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e \u003e \u003e const\u0026, std::vector\u003csimplecpp::Token const*, std::allocator\u003csimplecpp::Token const*\u003e \u003e const\u0026) const /home/user/CLionProjects/simplecpp/simplecpp.cpp:2086\n #1 0x62ffeca0d33d in simplecpp::Macro::expand(simplecpp::TokenList*, simplecpp::Location const\u0026, simplecpp::Token const*, std::unordered_map\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e, simplecpp::Macro, std::hash\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e \u003e, std::equal_to\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e \u003e, std::allocator\u003cstd::pair\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e const, simplecpp::Macro\u003e \u003e \u003e const\u0026, std::set\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e, std::less\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e \u003e, std::allocator\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e \u003e \u003e) const /home/user/CLionProjects/simplecpp/simplecpp.cpp:1918\n #2 0x62ffeca24768 in simplecpp::Macro::expand(simplecpp::TokenList*, simplecpp::Token const*, std::unordered_map\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e, simplecpp::Macro, std::hash\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e \u003e, std::equal_to\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e \u003e, std::allocator\u003cstd::pair\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e const, simplecpp::Macro\u003e \u003e \u003e const\u0026, std::vector\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e, std::allocator\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e \u003e \u003e\u0026) const /home/user/CLionProjects/simplecpp/simplecpp.cpp:1571\n #3 0x62ffec996457 in preprocessToken /home/user/CLionProjects/simplecpp/simplecpp.cpp:3259\n #4 0x62ffec9afafc in simplecpp::preprocess(simplecpp::TokenList\u0026, simplecpp::TokenList const\u0026, std::vector\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e, std::allocator\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e \u003e \u003e\u0026, std::map\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e, simplecpp::TokenList*, std::less\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e \u003e, std::allocator\u003cstd::pair\u003cstd::__cxx11::basic_string\u003cchar, std::char_traits\u003cchar\u003e, std::allocator\u003cchar\u003e \u003e const, simplecpp::TokenList*\u003e \u003e \u003e\u0026, simplecpp::DUI const\u0026, std::__cxx11::list\u003csimplecpp::Output, std::allocator\u003csimplecpp::Output\u003e \u003e*, std::__cxx11::list\u003csimplecpp::MacroUsage, std::allocator\u003csimplecpp::MacroUsage\u003e \u003e*, std::__cxx11::list\u003csimplecpp::IfCond, std::allocator\u003csimplecpp::IfCond\u003e \u003e*) /home/user/CLionProjects/simplecpp/simplecpp.cpp:3747\n #5 0x62ffec95f10b in main /home/user/CLionProjects/simplecpp/main.cpp:136\n #6 0x7b7eb2234e07 (/usr/lib/libc.so.6+0x25e07) (BuildId: aed3a2b0cf4e6cc12296052529af22f6a450a75a)\n #7 0x7b7eb2234ecb in __libc_start_main (/usr/lib/libc.so.6+0x25ecb) (BuildId: aed3a2b0cf4e6cc12296052529af22f6a450a75a)\n #8 0x62ffec962b24 in _start (/home/user/CLionProjects/simplecpp/simplecpp+0xd0b24) (BuildId: 578f1f19369ff6da7f1b6f13ef333782db2d1107)\n```","author":{"url":"https://github.com/firewave","@type":"Person","name":"firewave"},"datePublished":"2025-02-10T12:29:54.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/409/simplecpp/issues/409"}
| route-pattern | /:user_id/:repository/issues/:id(.:format) |
| route-controller | issues |
| route-action | show |
| fetch-nonce | v2:dc5b16dd-15c1-1252-122d-96d606b8176f |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | C092:1A12B5:2546A1F:3370448:6A4EEFD4 |
| html-safe-nonce | b53eaeba157d5cd954e5d4e1c6057453c58646c043cb9f12aab0162a8f187635 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDMDkyOjFBMTJCNToyNTQ2QTFGOjMzNzA0NDg6NkE0RUVGRDQiLCJ2aXNpdG9yX2lkIjoiODc4NzM0MjgwNTUxNTAzODY3NiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 413f8b563db225c69fe223b4c87a55898fba639192dd06695050a0a362301d94 |
| hovercard-subject-tag | repository:33434464 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/cppcheck-opensource/simplecpp/issues/409 |
| twitter:image | https://opengraph.githubassets.com/94d53ad069b41a5b4fcd8c4b065e89458fa03ca5276f896213a82f1393b022d3/cppcheck-opensource/simplecpp |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/94d53ad069b41a5b4fcd8c4b065e89458fa03ca5276f896213a82f1393b022d3/cppcheck-opensource/simplecpp |
| og:image:alt | C++ preprocessor. Contribute to cppcheck-opensource/simplecpp development by creating an account on GitHub. |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | b92d11c0aa4a77d54ef4af1078b6a15fb5a70a215b30c4ecf28889d5a8e656d9 |
| turbo-cache-control | no-cache |
| go-import | github.com/cppcheck-opensource/simplecpp git https://github.com/cppcheck-opensource/simplecpp.git |
| octolytics-dimension-user_id | 278097703 |
| octolytics-dimension-user_login | cppcheck-opensource |
| octolytics-dimension-repository_id | 33434464 |
| octolytics-dimension-repository_nwo | cppcheck-opensource/simplecpp |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 33434464 |
| octolytics-dimension-repository_network_root_nwo | cppcheck-opensource/simplecpp |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 00d04d6b867d2f16ab50bebae8ccc56e07c8988b |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width