diff options
author | Jacob Nevins <jacobn@chiark.greenend.org.uk> | 2003-10-12 17:16:39 +0400 |
---|---|---|
committer | Jacob Nevins <jacobn@chiark.greenend.org.uk> | 2003-10-12 17:16:39 +0400 |
commit | 8e2fd15bd598f3586a2eb36b460d21d77de94db4 (patch) | |
tree | 80ee5c600727a8d814cb1f1dbf2eb5cca34aa3e4 /psftp.c | |
parent | 5415873b3f0fa44da645a41eae6f51494d6edd7b (diff) |
Remove all the "assert(len>0)" which forbade zero-length writes across the
from_backend() interface, after having made all implementations safe against
being called with len==0 and possibly-NULL/undefined "data".
(This includes making misc.c:bufchain_add() more robust in this area.)
Assertion was originally added 2002-03-01; e.g., see plink.c:1.53 [r1571].
I believe this now shouldn't break anything.
This should hopefully make `ppk-empty-comment' finally GO AWAY. (Tested
with Unix PuTTY.)
[originally from svn r3500]
[r1571 == fdbd6978016e9fd87db7b3bfc33ff0da8bd3eea9]
Diffstat (limited to 'psftp.c')
-rw-r--r-- | psftp.c | 7 |
1 files changed, 3 insertions, 4 deletions
@@ -1639,14 +1639,13 @@ int from_backend(void *frontend, int is_stderr, const char *data, int datalen) unsigned char *p = (unsigned char *) data; unsigned len = (unsigned) datalen; - assert(len > 0); - /* * stderr data is just spouted to local stderr and otherwise * ignored. */ if (is_stderr) { - fwrite(data, 1, len, stderr); + if (len > 0) + fwrite(data, 1, len, stderr); return 0; } @@ -1656,7 +1655,7 @@ int from_backend(void *frontend, int is_stderr, const char *data, int datalen) if (!outptr) return 0; - if (outlen > 0) { + if ((outlen > 0) && (len > 0)) { unsigned used = outlen; if (used > len) used = len; |