diff options
| author | Carlos Martín Nieto <carlos@cmartin.tk> | 2011-06-13 23:01:12 +0200 |
|---|---|---|
| committer | Carlos Martín Nieto <carlos@cmartin.tk> | 2011-06-26 20:43:44 +0200 |
| commit | 7632e2494a5b8bfea41e7fbfaa0fc324e2178932 (patch) | |
| tree | 13ad0233de2726711c1c235a67590ea9b7f391bf /include/git2 | |
| parent | be9fe679fc86a8f233b0a6fc6078894edcb8661e (diff) | |
| download | libgit2-7632e2494a5b8bfea41e7fbfaa0fc324e2178932.tar.gz | |
Correctly handle network input
Add a parameter to git_pkt_parse_line to tell it how much data you
have in your buffer. If the buffer is too short, it returns an error
saying so. Adapt the git transport to use this and fix the offset
calculation.
Add the GIT_ESHORTBUFFER error code.
Diffstat (limited to 'include/git2')
| -rw-r--r-- | include/git2/errors.h | 3 | ||||
| -rw-r--r-- | include/git2/pkt.h | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/include/git2/errors.h b/include/git2/errors.h index 334b9edab..03c74e822 100644 --- a/include/git2/errors.h +++ b/include/git2/errors.h @@ -128,6 +128,9 @@ typedef enum { /** The path pattern and string did not match */ GIT_ENOMATCH = -31, + + /** The buffer is too short to satisfy the request */ + GIT_ESHORTBUFFER = -32, } git_error; /** diff --git a/include/git2/pkt.h b/include/git2/pkt.h index d0ffa5569..79c582828 100644 --- a/include/git2/pkt.h +++ b/include/git2/pkt.h @@ -55,5 +55,5 @@ struct git_pkt_ref { * Create a git protocol request. */ int git_pkt_gen_proto(char **out, int *outlen, const char *url); -int git_pkt_parse_line(git_pkt **head, const char *line, const char **out); +int git_pkt_parse_line(git_pkt **head, const char *line, const char **out, unsigned int len); void git_pkt_free(git_pkt *pkt); |
