fix the maxfile_size checking bug #158
Closed
+2
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Fix the predicate that never evaluates true.
Hi,
I occasionally found the PureFTPd continues to receive a file when user quota is exceeded. My debugging shows that the following predicates never evaluate true, since max_filesize =-1 initially:
(max_filesize >= (off_t) 0 &&
(max_filesize = user_quota_size - quota.size) < (off_t) 0)
When max_filesize >=(off_t) 0 evaluates false, the followed predicate will not be evaluated. Hence max_filesize =-1 for ever. This bug leads to that there is no overflow even if quota is exceeded.
For a simple patch, I changed the order of these two predicates such that max_filesize = user_quota_size - quota.size) < (off_t) 0 is evaluated first, then max_filesize will be assigned with the actual quota. Then quota will be checked correctly.
Bests
Joy