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

Path traversal improvement #19

Open
syakunin opened this issue Dec 3, 2021 · 0 comments
Open

Path traversal improvement #19

syakunin opened this issue Dec 3, 2021 · 0 comments
Labels
enhancement New feature or request

Comments

@syakunin
Copy link
Collaborator

syakunin commented Dec 3, 2021

Currently when the path is traversed, the library tries to avoid downloading the document as long as it can. Instead, the library downloads document metadata blocks which are much smaller and contains paths to all referenced documents. If the specified path is not found in metadata, then the library downloads the document and tries to find the path inside the document. We should note here that path traversal is a recursive process. However, if the library fails to find the specified path in the document it gives the control back one level up of recursion and this level tries to download the document and traverse it's document with the specified path. This happens until all levels of recursion have tried to download the document and traverse it with their path. If all levels failed then the library reports that given path cannot be traversed. However, downloading all documents along path traversal seems to be redundant, we can stop the recursion at last found document and if this document does not have the desired path, we can stop there and report that specified path cannot be traversed.

@syakunin syakunin added the enhancement New feature or request label Dec 3, 2021
@syakunin syakunin changed the title Path traversal Path traversal improvement Dec 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant