diff options
author | Orange Tsai <orange@chroot.org> | 2015-10-01 23:17:58 +0800 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2015-10-01 18:15:11 +0200 |
commit | 5bf36ea30d38b9e00029180ddbab73cab94a2195 (patch) | |
tree | 901fe0ddc2dc91a9c79283eaa4b28cbabdddb6db | |
parent | c6ff538ebd099d7ebeea774b9dfbbfeddfe3707b (diff) |
gopher: don't send NUL byte
Closes #466
-rw-r--r-- | lib/gopher.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/gopher.c b/lib/gopher.c index 954cad8e0..e23425506 100644 --- a/lib/gopher.c +++ b/lib/gopher.c @@ -83,16 +83,18 @@ static CURLcode gopher_do(struct connectdata *conn, bool *done) char *sel; char *sel_org = NULL; ssize_t amount, k; + int len; *done = TRUE; /* unconditionally */ /* Create selector. Degenerate cases: / and /1 => convert to "" */ - if(strlen(path) <= 2) + if(strlen(path) <= 2) { sel = (char *)""; + len = (int)strlen(sel); + } else { char *newp; size_t j, i; - int len; /* Otherwise, drop / and the first character (i.e., item type) ... */ newp = path; @@ -113,7 +115,7 @@ static CURLcode gopher_do(struct connectdata *conn, bool *done) /* We use Curl_write instead of Curl_sendf to make sure the entire buffer is sent, which could be sizeable with long selectors. */ - k = curlx_uztosz(strlen(sel)); + k = curlx_uztosz(len); for(;;) { result = Curl_write(conn, sockfd, sel, k, &amount); |