From 19065515152718407db849b0be71a8eeee80deaa Mon Sep 17 00:00:00 2001 From: ddennedy Date: Mon, 4 Jul 2005 03:00:50 +0000 Subject: [PATCH] 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 --- src/iso.c | 5 ++++- src/raw1394.h | 16 +++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/iso.c b/src/iso.c index 9e19e49..914b3ec 100644 --- a/src/iso.c +++ b/src/iso.c @@ -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 }