summaryrefslogtreecommitdiffstats
path: root/PICA_client.c
diff options
context:
space:
mode:
authorme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2013-12-15 16:45:48 +0000
committerme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2013-12-15 16:45:48 +0000
commit084bf8be3dae3cfe8a9a57e9d70569110455a7d9 (patch)
tree7de13b51247d1284d4949eb4aa80e5ab4bfca71f /PICA_client.c
parent7dda947198b81622ad0aea773e7ba3a6ec90ba7c (diff)
downloadpica-pica-084bf8be3dae3cfe8a9a57e9d70569110455a7d9.tar.gz
pica-pica-084bf8be3dae3cfe8a9a57e9d70569110455a7d9.zip
use buffer on stack, removed old check buf == NULL
git-svn-id: svn://localhost/project_picapica/trunk@301 fb96df88-216d-11de-830c-f3023f12d8ac
Diffstat (limited to 'PICA_client.c')
-rwxr-xr-xPICA_client.c13
1 files changed, 1 insertions, 12 deletions
diff --git a/PICA_client.c b/PICA_client.c
index f13c605..96ffda1 100755
--- a/PICA_client.c
+++ b/PICA_client.c
@@ -1704,25 +1704,16 @@ return PICA_OK;
int PICA_send_file_fragment(struct PICA_chaninfo *chn)
{
struct PICA_proto_msg *mp;
-char *buf;
+char buf[PICA_FILEFRAGMENTSIZE];
size_t fragment_size;
-if (buf == NULL || fragment_size > PICA_PROTO_C2CMSG_MAXDATASIZE)
- return PICA_ERRINVARG;
-
if (chn->sendfilestate != PICA_CHANSENDFILESTATE_SENDING)
return PICA_ERRFILETRANSFERNOTINPROGRESS;
-buf = (char*)malloc(PICA_FILEFRAGMENTSIZE);
-
-if (!buf)
- return PICA_ERRNOMEM;
-
fragment_size = fread(buf, 1, PICA_FILEFRAGMENTSIZE, chn->sendfile_stream);
if (fragment_size == 0)
{
- free(buf);
fclose(chn->sendfile_stream);
chn->sendfilestate = PICA_CHANSENDFILESTATE_IDLE;
@@ -1740,11 +1731,9 @@ if ((mp = c2c_writebuf_push(chn, PICA_PROTO_FILEFRAGMENT, fragment_size + 4)))
*((uint16_t*)mp->tail) = fragment_size;
memcpy(mp->tail + 2, buf, fragment_size);
- free(buf);
}
else
{
- free(buf);
return PICA_ERRNOMEM;
}