diff options
author | ddennedy <ddennedy@53a565d1-3bb7-0310-b661-cf11e63c67ab> | 2005-07-04 03:00:50 +0000 |
---|---|---|
committer | ddennedy <ddennedy@53a565d1-3bb7-0310-b661-cf11e63c67ab> | 2005-07-04 03:00:50 +0000 |
commit | 19065515152718407db849b0be71a8eeee80deaa (patch) | |
tree | 53aaf9dba643e8967d02a5b5509f2b4a1d4ca416 | |
parent | 87941d01c4188cc63f0e99c229b568164ad922bf (diff) | |
download | libraw1394-19065515152718407db849b0be71a8eeee80deaa.tar.gz |
add sanity check to queuing of packets in rawiso xmit
git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@159 53a565d1-3bb7-0310-b661-cf11e63c67ab
-rw-r--r-- | src/iso.c | 5 | ||||
-rw-r--r-- | src/raw1394.h | 16 |
2 files changed, 15 insertions, 6 deletions
@@ -269,7 +269,6 @@ int raw1394_iso_recv_start(raw1394handle_t handle, int start_on_cycle, int tag_m return 0; } - static int _raw1394_iso_xmit_queue_packets(raw1394handle_t handle) { struct raw1394_iso_status *stat = &handle->iso_status; @@ -282,6 +281,10 @@ static int _raw1394_iso_xmit_queue_packets(raw1394handle_t handle) goto out; } + /* ensure stat->n_packets is sane */ + if (stat->n_packets > stat->config.buf_packets) + stat->n_packets = stat->config.buf_packets; + /* we could potentially send up to stat->n_packets packets */ packets.n_packets = 0; packets.infos = malloc(stat->n_packets * sizeof(struct raw1394_iso_packet_info)); diff --git a/src/raw1394.h b/src/raw1394.h index bd482da..833915f 100644 --- a/src/raw1394.h +++ b/src/raw1394.h @@ -1207,7 +1207,9 @@ typedef int (*iso_handler_t)(raw1394handle_t, int channel, size_t length, **/ iso_handler_t raw1394_set_iso_handler(raw1394handle_t handle, unsigned int channel, - iso_handler_t new_h); + iso_handler_t new_h) +__attribute__ ((deprecated)); + /** * raw1394_start_iso_rcv - enable isochronous receiving (DEPRECATED) * @handle: libraw1394 handle @@ -1219,7 +1221,8 @@ iso_handler_t raw1394_set_iso_handler(raw1394handle_t handle, * Isochronous packets are then passed to the callback specified with * raw1394_set_iso_handler(). **/ -int raw1394_start_iso_rcv(raw1394handle_t handle, unsigned int channel); +int raw1394_start_iso_rcv(raw1394handle_t handle, unsigned int channel) +__attribute__ ((deprecated)); /** * raw1394_stop_iso_rcv - stop isochronous receiving (DEPRECATED) @@ -1230,7 +1233,8 @@ int raw1394_start_iso_rcv(raw1394handle_t handle, unsigned int channel); * * Stops the reception of isochronous packets in @channel on @handle. **/ -int raw1394_stop_iso_rcv(raw1394handle_t handle, unsigned int channel); +int raw1394_stop_iso_rcv(raw1394handle_t handle, unsigned int channel) +__attribute__ ((deprecated)); /** * raw1394_start_iso_write - initiate an isochronous packet write (DEPRECATED) @@ -1259,7 +1263,8 @@ int raw1394_stop_iso_rcv(raw1394handle_t handle, unsigned int channel); int raw1394_start_iso_write(raw1394handle_t handle, unsigned int channel, unsigned int tag, unsigned int sy, unsigned int speed, size_t length, quadlet_t *data, - unsigned long rawtag); + unsigned long rawtag) +__attribute__ ((deprecated)); /** * raw1394_iso_write - DEPRECATED @@ -1269,7 +1274,8 @@ int raw1394_start_iso_write(raw1394handle_t handle, unsigned int channel, **/ int raw1394_iso_write(raw1394handle_t handle, unsigned int channel, unsigned int tag, unsigned int sy, unsigned int speed, - size_t length, quadlet_t *data); + size_t length, quadlet_t *data) +__attribute__ ((deprecated)); #ifdef __cplusplus } |