Restrict XML file recursion depth to 200.

This resolves #2.
This commit is contained in:
wolfbeast 2017-06-15 16:38:41 +02:00 committed by Roy Tam
commit 141ff75e6a
2 changed files with 17 additions and 4 deletions

View file

@ -16,6 +16,9 @@
#include "nsIParser.h"
#include "nsCycleCollectionParticipant.h"
// Tree depth limit for XML-based files (xml/svg/etc.)
#define MAX_XML_TREE_DEPTH 200
class nsIExpatSink;
class nsIExtendedExpatSink;
struct nsCatalogData;
@ -37,7 +40,7 @@ public:
const char16_t *aBase,
const char16_t *aSystemId,
const char16_t *aPublicId);
nsresult HandleStartElement(const char16_t *aName, const char16_t **aAtts);
void HandleStartElement(const char16_t *aName, const char16_t **aAtts);
nsresult HandleEndElement(const char16_t *aName);
nsresult HandleCharacterData(const char16_t *aCData, const uint32_t aLength);
nsresult HandleComment(const char16_t *aName);
@ -119,6 +122,8 @@ private:
// Whether we're sure that we won't be getting more buffers to parse from
// Necko
bool mIsFinalChunk;
uint8_t mTagDepth;
nsresult mInternalState;