Changeset 2734:8fae5b5a4501 in roaraudio


Ignore:
Timestamp:
09/20/09 22:47:55 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

check if id is valid

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/streams.c

    r2730 r2734  
    2525#include "roard.h" 
    2626 
     27#define _CHECK_SID_RET(id,ret) if ( (id) < 0 || (id) > ROAR_STREAMS_MAX || g_streams[(id)] == NULL ) return (ret) 
     28#define _CHECK_SID(id)         _CHECK_SID_RET((id), -1) 
     29 
    2730int streams_thru_num     =  0; 
    2831int streams_recsource_id = -1; 
     
    138141 int i; 
    139142 int client; 
     143 
     144 _CHECK_SID(id); 
    140145 
    141146 if ( (s = g_streams[id]) == NULL ) 
     
    257262 
    258263int streams_set_client (int id, int client) { 
    259  if ( g_streams[id] == NULL ) 
    260   return -1; 
     264 
     265 _CHECK_SID(id); 
    261266 
    262267 ROAR_DBG("streams_set_client(id=%i): g_streams[id]->id=%i", id, ROAR_STREAM(g_streams[id])->id); 
     
    267272 
    268273int streams_get_client (int id) { 
    269  if ( g_streams[id] == NULL ) 
    270   return -1; 
     274 _CHECK_SID(id); 
    271275 
    272276 return g_streams[id]->client; 
     
    275279int streams_set_dir    (int id, int dir, int defaults) { 
    276280 struct roar_stream_server * ss; 
     281 
     282 _CHECK_SID(id); 
    277283 
    278284 if ( (ss = g_streams[id]) == NULL ) 
     
    307313 struct roar_stream_server * ss; 
    308314 
     315 _CHECK_SID(id); 
     316 
    309317 if ( (ss = g_streams[id]) == NULL ) 
    310318  return -1; 
     
    315323int streams_get_subsys (int id) { 
    316324 struct roar_stream_server * ss; 
     325 
     326 _CHECK_SID(id); 
    317327 
    318328 if ( (ss = g_streams[id]) == NULL ) 
     
    405415 int dir; 
    406416 int nonblock = 1; 
     417 
     418 _CHECK_SID(id); 
    407419 
    408420 if ( (s = ROAR_STREAM(ss = g_streams[id])) == NULL ) 
     
    488500 
    489501int streams_get_fh     (int id) { 
    490  if ( id < 0 ) 
    491   return -1; 
    492  
    493  if ( g_streams[id] == NULL ) 
    494   return -1; 
     502 _CHECK_SID(id); 
    495503 
    496504 return ROAR_STREAM(g_streams[id])->fh; 
     
    501509 struct roar_stream        * s; 
    502510 
     511 _CHECK_SID(id); 
     512 
    503513 if ( (s = ROAR_STREAM(ss = g_streams[id])) == NULL ) 
    504514  return -1; 
     
    510520 
    511521int streams_get    (int id, struct roar_stream_server ** stream) { 
    512  if ( g_streams[id] == NULL ) 
    513   return -1; 
     522 _CHECK_SID(id); 
    514523 
    515524 *stream = g_streams[id]; 
     
    519528 
    520529int streams_set_socktype (int id, int socktype) { 
    521  if ( g_streams[id] == NULL ) 
    522   return -1; 
     530 _CHECK_SID(id); 
    523531 
    524532 g_streams[id]->socktype = socktype; 
     
    528536 
    529537int streams_get_socktype (int id) { 
    530  if ( g_streams[id] == NULL ) 
    531   return -1; 
     538 _CHECK_SID(id); 
    532539 
    533540 return g_streams[id]->socktype; 
     
    535542 
    536543int streams_set_primary (int id, int prim) { 
    537  if ( g_streams[id] == NULL ) 
    538   return -1; 
     544 _CHECK_SID(id); 
    539545 
    540546 g_streams[id]->primary = prim; 
     
    549555int streams_set_sync     (int id, int sync) { 
    550556 int fh = streams_get_fh(id); 
     557 
     558 _CHECK_SID(id); 
    551559 
    552560 if ( fh != -1 ) { 
     
    567575 int use = !reset; 
    568576 
    569  if ( g_streams[id] == NULL ) 
    570   return -1; 
     577 _CHECK_SID(id); 
    571578 
    572579 return roar_vio_ctl(&(g_streams[id]->vio), ROAR_VIO_CTL_SET_UMMAP, &use); 
     
    576583 int parent; 
    577584 
    578  if ( g_streams[id] == NULL ) 
    579   return -1; 
     585 _CHECK_SID(id); 
    580586 
    581587 if ( flag & ROAR_FLAG_MMAP ) 
     
    647653 
    648654int streams_set_rawflag  (int id, int flag) { 
    649  if ( id == -1 ) 
    650   return -1; 
    651  
    652  if ( g_streams[id] == NULL ) 
    653   return -1; 
     655 _CHECK_SID(id); 
    654656 
    655657 g_streams[id]->flags |= flag; 
     
    659661 
    660662int streams_reset_flag   (int id, int flag) { 
    661  if ( g_streams[id] == NULL ) 
    662   return -1; 
     663 _CHECK_SID(id); 
    663664 
    664665 if ( flag & ROAR_FLAG_RECSOURCE ) 
     
    692693 
    693694int streams_get_flag     (int id, int flag) { 
    694  if ( g_streams[id] == NULL ) 
    695   return -1; 
     695 _CHECK_SID(id); 
    696696 
    697697 return g_streams[id]->flags & flag ? 1 : 0; 
     
    701701 char * str; 
    702702 
    703  if ( g_streams[id] == NULL ) 
    704   return -1; 
     703 _CHECK_SID(id); 
    705704 
    706705 if ( (str = strdup(name)) == NULL ) 
     
    716715 
    717716char * streams_get_name  (int id) { 
    718  if ( g_streams[id] == NULL ) 
    719   return NULL; 
     717 _CHECK_SID_RET(id, NULL); 
    720718 
    721719 return g_streams[id]->name; 
     
    729727 uint_least32_t t[1]; 
    730728 uint64_t       tmp; 
     729 
     730 _CHECK_SID(id); 
    731731 
    732732 if ( (s = ROAR_STREAM(ss = g_streams[id])) == NULL ) 
     
    763763 int subsys; 
    764764 
     765 _CHECK_SID(id); 
     766 
    765767 if ( (ss = g_streams[id]) == NULL ) 
    766768  return -1; 
     
    799801 int_least32_t comp; 
    800802 
     803 _CHECK_SID(id); 
     804 
    801805 if ( (ss = g_streams[id]) == NULL ) 
    802806  return -1; 
     
    824828 
    825829int streams_get_outputbuffer  (int id, void ** buffer, size_t size) { 
    826  if ( g_streams[id] == NULL ) 
    827   return -1; 
     830 _CHECK_SID(id); 
    828831 
    829832 // output buffer size does never change. 
     
    857860 struct roar_stream_server * ss; 
    858861 
     862 _CHECK_SID(id); 
     863 
    859864 if ( (s = ROAR_STREAM(ss = g_streams[id])) == NULL ) 
    860865  return -1; 
     
    10301035 ROAR_DBG("stream_add_buffer(id=%i, buf=%p) = ?", id, buf); 
    10311036 
    1032  if ( g_streams[id] == NULL ) 
    1033   return -1; 
     1037 _CHECK_SID(id); 
    10341038 
    10351039 if ( g_streams[id]->buffer == NULL ) { 
     
    10441048 
    10451049int stream_shift_out_buffer   (int id, void * data, size_t * len) { 
    1046  if ( g_streams[id] == NULL ) 
    1047   return -1; 
     1050 _CHECK_SID(id); 
    10481051 
    10491052 if ( g_streams[id]->buffer == NULL ) 
     
    10561059 struct roar_buffer * next; 
    10571060 
    1058  if ( g_streams[id] == NULL ) 
    1059   return -1; 
     1061 _CHECK_SID(id); 
    10601062 
    10611063 if ( g_streams[id]->buffer == NULL ) { 
     
    10721074} 
    10731075int stream_unshift_buffer (int id, struct roar_buffer *  buf) { 
    1074  if ( g_streams[id] == NULL ) 
    1075   return -1; 
     1076 _CHECK_SID(id); 
    10761077 
    10771078 if ( g_streams[id]->buffer == NULL ) { 
     
    10941095 void * bufdata; 
    10951096 int ret; 
     1097 
     1098 _CHECK_SID(id); 
    10961099 
    10971100 if ( (ss = g_streams[id]) == NULL ) 
     
    11451148 register struct roar_stream_server *  ss; 
    11461149 
     1150 _CHECK_SID(id); 
     1151 
    11471152 if ( (ss = g_streams[id]) == NULL ) 
    11481153  return -1; 
     
    11661171// char                        tmp; 
    11671172 
    1168  if ( g_streams[id] == NULL ) 
    1169   return -1; 
     1173 _CHECK_SID(id); 
    11701174 
    11711175 ROAR_DBG("streams_check(id=%i) = ?", id); 
     
    13211325 ssize_t ret; 
    13221326 
    1323  if ( g_streams[id] == NULL ) 
    1324   return -1; 
     1327 _CHECK_SID(id); 
    13251328 
    13261329 ROAR_DBG("streams_send_mon(id=%i) = ?", id); 
     
    15201523 struct roar_stream_server *  ss; 
    15211524 
    1522  if ( g_streams[id] == NULL ) 
    1523   return -1; 
     1525 _CHECK_SID(id); 
    15241526 
    15251527 ROAR_DBG("streams_send_filter(id=%i) = ?", id); 
     
    15611563 
    15621564ssize_t stream_vio_read (int stream, void *buf, size_t count) { 
    1563  struct roar_stream_server * s = g_streams[stream]; 
    1564  
    1565  if ( !s ) 
    1566   return -1; 
    1567  
    1568  return stream_vio_s_read(s, buf, count); 
     1565 _CHECK_SID(stream); 
     1566 
     1567 return stream_vio_s_read(g_streams[stream], buf, count); 
    15691568} 
    15701569 
    15711570ssize_t stream_vio_write(int stream, void *buf, size_t count) { 
    1572  struct roar_stream_server * s = g_streams[stream]; 
    1573  
    1574  if ( !s ) 
    1575   return -1; 
    1576  
    1577  return stream_vio_s_write(s, buf, count); 
     1571 _CHECK_SID(stream); 
     1572 
     1573 return stream_vio_s_write(g_streams[stream], buf, count); 
    15781574} 
    15791575 
Note: See TracChangeset for help on using the changeset viewer.