diff options
| author | Jason A. Donenfeld | 2018-07-14 05:09:27 +0200 |
|---|---|---|
| committer | Jason A. Donenfeld | 2018-07-14 05:09:27 +0200 |
| commit | 93a2c3305190ca87cc1a6c98868c251ef67c3f37 (patch) | |
| tree | 9d38211667459409b313c223086439b01489e440 | |
| parent | c3b5b5f648d953307672a4b30e9222787668f708 (diff) | |
| download | cgit-93a2c3305190ca87cc1a6c98868c251ef67c3f37.tar.gz cgit-93a2c3305190ca87cc1a6c98868c251ef67c3f37.tar.bz2 cgit-93a2c3305190ca87cc1a6c98868c251ef67c3f37.zip | |
auth-filter: do not write more than we've read
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
| -rw-r--r-- | cgit.c | 4 |
1 files changed, 2 insertions, 2 deletions
| @@ -659,13 +659,13 @@ static inline void open_auth_filter(const char *function) | |||
| 659 | static inline void authenticate_post(void) | 659 | static inline void authenticate_post(void) |
| 660 | { | 660 | { |
| 661 | char buffer[MAX_AUTHENTICATION_POST_BYTES]; | 661 | char buffer[MAX_AUTHENTICATION_POST_BYTES]; |
| 662 | unsigned int len; | 662 | ssize_t len; |
| 663 | 663 | ||
| 664 | open_auth_filter("authenticate-post"); | 664 | open_auth_filter("authenticate-post"); |
| 665 | len = ctx.env.content_length; | 665 | len = ctx.env.content_length; |
| 666 | if (len > MAX_AUTHENTICATION_POST_BYTES) | 666 | if (len > MAX_AUTHENTICATION_POST_BYTES) |
| 667 | len = MAX_AUTHENTICATION_POST_BYTES; | 667 | len = MAX_AUTHENTICATION_POST_BYTES; |
| 668 | if (read(STDIN_FILENO, buffer, len) < 0) | 668 | if ((len = read(STDIN_FILENO, buffer, len)) < 0) |
| 669 | die_errno("Could not read POST from stdin"); | 669 | die_errno("Could not read POST from stdin"); |
| 670 | if (write(STDOUT_FILENO, buffer, len) < 0) | 670 | if (write(STDOUT_FILENO, buffer, len) < 0) |
| 671 | die_errno("Could not write POST to stdout"); | 671 | die_errno("Could not write POST to stdout"); |
