diff options
| author | me_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac> | 2013-12-15 16:45:48 +0000 |
|---|---|---|
| committer | me_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac> | 2013-12-15 16:45:48 +0000 |
| commit | 084bf8be3dae3cfe8a9a57e9d70569110455a7d9 (patch) | |
| tree | 7de13b51247d1284d4949eb4aa80e5ab4bfca71f /PICA_client.c | |
| parent | 7dda947198b81622ad0aea773e7ba3a6ec90ba7c (diff) | |
| download | pica-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-x | PICA_client.c | 13 |
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; } |
