urlglob: only accept 255 globs
No binary (build failed)
—
(log yok)
| @@ -423,10 +423,13 @@ static CURLcode glob_parse(struct URLGlob *glob, const char *pattern, | |
| if(++glob->size >= glob->palloc) { | |
| struct URLPattern *np = NULL; | |
| glob->palloc *= 2; | |
| - | if(glob->size < 10000) /* avoid ridiculous amounts */ |
| + | if(glob->size < 255) { /* avoid ridiculous amounts */ |
| np = realloc(glob->pattern, glob->palloc * sizeof(struct URLPattern)); | |
| - | if(!np) |
| - | return globerror(glob, NULL, pos, CURLE_OUT_OF_MEMORY); |
| + | if(!np) |
| + | return globerror(glob, NULL, pos, CURLE_OUT_OF_MEMORY); |
| + | } |
| + | else |
| + | return globerror(glob, "too many {} sets", pos, CURLE_URL_MALFORMAT); |
| glob->pattern = np; | |
| } | |
| } | |
| @@ -108,7 +108,7 @@ test718 test719 test720 test721 test722 test723 test724 test725 test726 \ | |
| test727 test728 test729 test730 test731 test732 test733 test734 test735 \ | |
| test736 test737 test738 test739 test740 test741 test742 test743 test744 \ | |
| test745 test746 test747 test748 test749 test750 test751 test752 test753 \ | |
| - | test754 test755 test756 test757 test758 test759 test760 \ |
| + | test754 test755 test756 test757 test758 test759 test760 test761 \ |
| test780 test781 test782 test783 test784 test785 test786 test787 test788 \ | |
| test789 test790 test791 test792 test793 test794 test795 test796 test797 \ | |
| \ | |
| @@ -0,0 +1,33 @@ | |
| + | <testcase> |
| + | <info> |
| + | <keywords> |
| + | globbing |
| + | </keywords> |
| + | </info> |
| + | |
| + | # |
| + | # Client-side |
| + | <client> |
| + | <server> |
| + | none |
| + | </server> |
| + | <name> |
| + | too many {} globs |
| + | </name> |
| + | <command> |
| + | http://testingthis/{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b |
| + | </command> |
| + | </client> |
| + | |
| + | # |
| + | # Verify data after the test has been "shot" |
| + | <verify> |
| + | <errorcode> |
| + | 3 |
| + | </errorcode> |
| + | <stderr mode="text"> |
| + | curl: (3) too many {} sets in URL position 403: |
| + | http://testingthis/{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a}b{a |
| + | </stderr> |
| + | </verify> |
| + | </testcase> |