summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/appl/bsd/v4rcp.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/appl/bsd/v4rcp.c b/src/appl/bsd/v4rcp.c
index 44938dbd6..788c1f586 100644
--- a/src/appl/bsd/v4rcp.c
+++ b/src/appl/bsd/v4rcp.c
@@ -251,16 +251,11 @@ static int kstream_write(krem, buf, len)
int st;
unsigned int outlen = (len + 7) & (~7U);
- if (krem->writelen < outlen) {
- if (krem->writelen == 0) {
- krem->inbuf = (char*)malloc(outlen);
- krem->outbuf = (char*)malloc(outlen+8);
- } else {
- krem->inbuf = (char*)realloc(krem->inbuf, outlen);
+ if (krem->writelen < outlen || krem->outbuf == 0) {
+ krem->inbuf = (char*)realloc(krem->inbuf, outlen ? outlen : 1);
krem->outbuf = (char*)realloc(krem->outbuf, outlen+8);
- }
- if(!krem->inbuf || !krem->outbuf) { errno = ENOMEM; return -1; }
- krem->writelen = outlen;
+ if(!krem->inbuf || !krem->outbuf) { errno = ENOMEM; return -1; }
+ krem->writelen = outlen;
}
outlen = (len + 7) & (~7U);