diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2004-05-06 19:20:04 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2004-05-06 19:20:04 +0000 |
commit | 17bbaddcac31bce9aab3192aea45f0bb3832cf66 (patch) | |
tree | 727b251f55c94d87b7390c0f3ad5af8a241a965f /cpukit/rtems | |
parent | 2004-04-09 Joel Sherrill <joel@OARcorp.com> (diff) | |
download | rtems-17bbaddcac31bce9aab3192aea45f0bb3832cf66.tar.bz2 |
2004-05-06 Joel Sherrill <joel@OARcorp.com>
PR 618/rtems
* include/rtems/rtems/status.h, src/clockget.c, src/clockset.c,
src/dpmemcreate.c, src/dpmemexternal2internal.c,
src/dpmeminternal2external.c, src/eventmp.c, src/eventreceive.c,
src/eventsend.c, src/msgqbroadcast.c, src/msgqcreate.c,
src/msgqflush.c, src/msgqgetnumberpending.c, src/msgqreceive.c,
src/msgqsubmit.c, src/partcreate.c, src/partdelete.c,
src/partgetbuffer.c, src/ratemoncancel.c, src/ratemoncreate.c,
src/ratemondelete.c, src/ratemongetstatus.c, src/ratemonident.c,
src/ratemonperiod.c, src/regioncreate.c, src/regiondelete.c,
src/regionextend.c, src/regiongetsegment.c,
src/regiongetsegmentsize.c, src/regionreturnsegment.c,
src/semcreate.c, src/semdelete.c, src/semflush.c, src/semident.c,
src/taskcreate.c, src/taskgetnote.c, src/taskmode.c,
src/taskrestart.c, src/taskresume.c, src/tasksetnote.c,
src/tasksuspend.c, src/taskvariableadd.c, src/taskvariabledelete.c,
src/taskvariableget.c, src/taskwakewhen.c, src/timercreate.c,
src/timerdelete.c, src/timerfireafter.c, src/timerfirewhen.c,
src/timerserverfireafter.c, src/timerserverfirewhen.c: Add NULL
checks.
Diffstat (limited to 'cpukit/rtems')
52 files changed, 172 insertions, 34 deletions
diff --git a/cpukit/rtems/ChangeLog b/cpukit/rtems/ChangeLog index 8bf12f9df9..6f16c5fbd2 100644 --- a/cpukit/rtems/ChangeLog +++ b/cpukit/rtems/ChangeLog @@ -1,3 +1,26 @@ +2004-05-06 Joel Sherrill <joel@OARcorp.com> + + PR 618/rtems + * include/rtems/rtems/status.h, src/clockget.c, src/clockset.c, + src/dpmemcreate.c, src/dpmemexternal2internal.c, + src/dpmeminternal2external.c, src/eventmp.c, src/eventreceive.c, + src/eventsend.c, src/msgqbroadcast.c, src/msgqcreate.c, + src/msgqflush.c, src/msgqgetnumberpending.c, src/msgqreceive.c, + src/msgqsubmit.c, src/partcreate.c, src/partdelete.c, + src/partgetbuffer.c, src/ratemoncancel.c, src/ratemoncreate.c, + src/ratemondelete.c, src/ratemongetstatus.c, src/ratemonident.c, + src/ratemonperiod.c, src/regioncreate.c, src/regiondelete.c, + src/regionextend.c, src/regiongetsegment.c, + src/regiongetsegmentsize.c, src/regionreturnsegment.c, + src/semcreate.c, src/semdelete.c, src/semflush.c, src/semident.c, + src/taskcreate.c, src/taskgetnote.c, src/taskmode.c, + src/taskrestart.c, src/taskresume.c, src/tasksetnote.c, + src/tasksuspend.c, src/taskvariableadd.c, src/taskvariabledelete.c, + src/taskvariableget.c, src/taskwakewhen.c, src/timercreate.c, + src/timerdelete.c, src/timerfireafter.c, src/timerfirewhen.c, + src/timerserverfireafter.c, src/timerserverfirewhen.c: Add NULL + checks. + 2004-02-26 Thomas Rauscher <trauscher@loytec.com. PR 584/RTEMS diff --git a/cpukit/rtems/include/rtems/rtems/status.h b/cpukit/rtems/include/rtems/rtems/status.h index 9f30780f98..db1c312e42 100644 --- a/cpukit/rtems/include/rtems/rtems/status.h +++ b/cpukit/rtems/include/rtems/rtems/status.h @@ -65,6 +65,7 @@ extern rtems_status_code _Status_Object_name_errors_to_status[]; rtems_status_code _Status_Object_name_errors_to_status[] = { RTEMS_SUCCESSFUL, /* OBJECTS_SUCCESSFUL */ RTEMS_INVALID_NAME, /* OBJECTS_INVALID_NAME */ + RTEMS_INVALID_ADDRESS, /* OBJECTS_INVALID_ADDRESS */ RTEMS_INVALID_NODE /* OBJECTS_INVALID_NODE */ }; #endif diff --git a/cpukit/rtems/src/clockget.c b/cpukit/rtems/src/clockget.c index 45105bc0f2..3ae9cab1a0 100644 --- a/cpukit/rtems/src/clockget.c +++ b/cpukit/rtems/src/clockget.c @@ -45,6 +45,9 @@ rtems_status_code rtems_clock_get( ISR_Level level; rtems_interval tmp; + if ( !time_buffer ) + return RTEMS_INVALID_ADDRESS; + switch ( option ) { case RTEMS_CLOCK_GET_TOD: if ( !_TOD_Is_set ) diff --git a/cpukit/rtems/src/clockset.c b/cpukit/rtems/src/clockset.c index 59677fd3e1..5de5dc0edb 100644 --- a/cpukit/rtems/src/clockset.c +++ b/cpukit/rtems/src/clockset.c @@ -39,6 +39,9 @@ rtems_status_code rtems_clock_set( { rtems_interval seconds; + if ( !time_buffer ) + return RTEMS_INVALID_ADDRESS; + if ( _TOD_Validate( time_buffer ) ) { seconds = _TOD_To_seconds( time_buffer ); _Thread_Disable_dispatch(); diff --git a/cpukit/rtems/src/dpmemcreate.c b/cpukit/rtems/src/dpmemcreate.c index 6f8ad12e5d..5a71afa0a1 100644 --- a/cpukit/rtems/src/dpmemcreate.c +++ b/cpukit/rtems/src/dpmemcreate.c @@ -52,6 +52,9 @@ rtems_status_code rtems_port_create( if ( !rtems_is_name_valid( name) ) return RTEMS_INVALID_NAME; + if ( !id ) + return RTEMS_INVALID_ADDRESS; + if ( !_Addresses_Is_aligned( internal_start ) || !_Addresses_Is_aligned( external_start ) ) return RTEMS_INVALID_ADDRESS; diff --git a/cpukit/rtems/src/dpmemexternal2internal.c b/cpukit/rtems/src/dpmemexternal2internal.c index c070aa3378..aaa6c48729 100644 --- a/cpukit/rtems/src/dpmemexternal2internal.c +++ b/cpukit/rtems/src/dpmemexternal2internal.c @@ -49,6 +49,9 @@ rtems_status_code rtems_port_external_to_internal( Objects_Locations location; unsigned32 ending; + if ( !internal ) + return RTEMS_INVALID_ADDRESS; + the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { case OBJECTS_REMOTE: /* this error cannot be returned */ diff --git a/cpukit/rtems/src/dpmeminternal2external.c b/cpukit/rtems/src/dpmeminternal2external.c index 144593d681..a7976784d8 100644 --- a/cpukit/rtems/src/dpmeminternal2external.c +++ b/cpukit/rtems/src/dpmeminternal2external.c @@ -49,6 +49,9 @@ rtems_status_code rtems_port_internal_to_external( Objects_Locations location; unsigned32 ending; + if ( !external ) + return RTEMS_INVALID_ADDRESS; + the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { case OBJECTS_REMOTE: /* this error cannot be returned */ diff --git a/cpukit/rtems/src/eventmp.c b/cpukit/rtems/src/eventmp.c index 33fa0e6d97..cf611c5d5b 100644 --- a/cpukit/rtems/src/eventmp.c +++ b/cpukit/rtems/src/eventmp.c @@ -40,7 +40,7 @@ rtems_status_code _Event_MP_Send_request_packet ( Event_MP_Remote_operations operation, Objects_Id event_id, - rtems_event_set event_in + rtems_event_set event_in ) { Event_MP_Packet *the_packet; diff --git a/cpukit/rtems/src/eventreceive.c b/cpukit/rtems/src/eventreceive.c index 05a58eb469..646f0b9bca 100644 --- a/cpukit/rtems/src/eventreceive.c +++ b/cpukit/rtems/src/eventreceive.c @@ -48,6 +48,9 @@ rtems_status_code rtems_event_receive( { RTEMS_API_Control *api; + if ( !event_out ) + return RTEMS_INVALID_ADDRESS; + api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ]; if ( _Event_sets_Is_empty( event_in ) ) { diff --git a/cpukit/rtems/src/eventsend.c b/cpukit/rtems/src/eventsend.c index 1151ebfa29..8294fb3117 100644 --- a/cpukit/rtems/src/eventsend.c +++ b/cpukit/rtems/src/eventsend.c @@ -37,8 +37,8 @@ */ rtems_status_code rtems_event_send( - Objects_Id id, - rtems_event_set event_in + Objects_Id id, + rtems_event_set event_in ) { register Thread_Control *the_thread; diff --git a/cpukit/rtems/src/msgqbroadcast.c b/cpukit/rtems/src/msgqbroadcast.c index efeb16724d..c851346f99 100644 --- a/cpukit/rtems/src/msgqbroadcast.c +++ b/cpukit/rtems/src/msgqbroadcast.c @@ -60,6 +60,12 @@ rtems_status_code rtems_message_queue_broadcast( Objects_Locations location; CORE_message_queue_Status core_status; + if ( !buffer ) + return RTEMS_INVALID_ADDRESS; + + if ( !count ) + return RTEMS_INVALID_ADDRESS; + the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { case OBJECTS_REMOTE: diff --git a/cpukit/rtems/src/msgqcreate.c b/cpukit/rtems/src/msgqcreate.c index 51796c18d0..08efc71074 100644 --- a/cpukit/rtems/src/msgqcreate.c +++ b/cpukit/rtems/src/msgqcreate.c @@ -67,6 +67,9 @@ rtems_status_code rtems_message_queue_create( if ( !rtems_is_name_valid( name ) ) return RTEMS_INVALID_NAME; + if ( !id ) + return RTEMS_INVALID_ADDRESS; + #if defined(RTEMS_MULTIPROCESSING) if ( (is_global = _Attributes_Is_global( attribute_set ) ) && !_System_state_Is_multiprocessing ) diff --git a/cpukit/rtems/src/msgqflush.c b/cpukit/rtems/src/msgqflush.c index 2b8f184de8..a6978d913c 100644 --- a/cpukit/rtems/src/msgqflush.c +++ b/cpukit/rtems/src/msgqflush.c @@ -56,6 +56,9 @@ rtems_status_code rtems_message_queue_flush( register Message_queue_Control *the_message_queue; Objects_Locations location; + if ( !count ) + return RTEMS_INVALID_ADDRESS; + the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { case OBJECTS_REMOTE: diff --git a/cpukit/rtems/src/msgqgetnumberpending.c b/cpukit/rtems/src/msgqgetnumberpending.c index bc15c1b4ff..cc6f571e04 100644 --- a/cpukit/rtems/src/msgqgetnumberpending.c +++ b/cpukit/rtems/src/msgqgetnumberpending.c @@ -54,6 +54,9 @@ rtems_status_code rtems_message_queue_get_number_pending( register Message_queue_Control *the_message_queue; Objects_Locations location; + if ( !count ) + return RTEMS_INVALID_ADDRESS; + the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { case OBJECTS_REMOTE: diff --git a/cpukit/rtems/src/msgqreceive.c b/cpukit/rtems/src/msgqreceive.c index 187e69c181..1f3de7fb1f 100644 --- a/cpukit/rtems/src/msgqreceive.c +++ b/cpukit/rtems/src/msgqreceive.c @@ -61,6 +61,12 @@ rtems_status_code rtems_message_queue_receive( Objects_Locations location; boolean wait; + if ( !buffer ) + return RTEMS_INVALID_ADDRESS; + + if ( !size ) + return RTEMS_INVALID_ADDRESS; + the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { diff --git a/cpukit/rtems/src/msgqsubmit.c b/cpukit/rtems/src/msgqsubmit.c index 1c08f1e576..e2f7c15b05 100644 --- a/cpukit/rtems/src/msgqsubmit.c +++ b/cpukit/rtems/src/msgqsubmit.c @@ -69,6 +69,9 @@ rtems_status_code _Message_queue_Submit( Objects_Locations location; CORE_message_queue_Status msg_status; + if ( !buffer ) + return RTEMS_INVALID_ADDRESS; + the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { diff --git a/cpukit/rtems/src/partcreate.c b/cpukit/rtems/src/partcreate.c index 8c8af96f50..6be52350e9 100644 --- a/cpukit/rtems/src/partcreate.c +++ b/cpukit/rtems/src/partcreate.c @@ -47,7 +47,7 @@ rtems_status_code rtems_partition_create( void *starting_address, unsigned32 length, unsigned32 buffer_size, - rtems_attribute attribute_set, + rtems_attribute attribute_set, Objects_Id *id ) { @@ -56,6 +56,12 @@ rtems_status_code rtems_partition_create( if ( !rtems_is_name_valid( name ) ) return RTEMS_INVALID_NAME; + if ( !starting_address ) + return RTEMS_INVALID_ADDRESS; + + if ( !id ) + return RTEMS_INVALID_ADDRESS; + if ( length == 0 || buffer_size == 0 || length < buffer_size || !_Partition_Is_buffer_size_aligned( buffer_size ) ) return RTEMS_INVALID_SIZE; diff --git a/cpukit/rtems/src/partdelete.c b/cpukit/rtems/src/partdelete.c index 8502f3c8d3..16b3b4cdd7 100644 --- a/cpukit/rtems/src/partdelete.c +++ b/cpukit/rtems/src/partdelete.c @@ -34,7 +34,7 @@ * * Output parameters: * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful + * error code - if unsuccessful */ rtems_status_code rtems_partition_delete( @@ -42,7 +42,7 @@ rtems_status_code rtems_partition_delete( ) { register Partition_Control *the_partition; - Objects_Locations location; + Objects_Locations location; the_partition = _Partition_Get( id, &location ); switch ( location ) { diff --git a/cpukit/rtems/src/partgetbuffer.c b/cpukit/rtems/src/partgetbuffer.c index 36910eb7d6..6870d66ca7 100644 --- a/cpukit/rtems/src/partgetbuffer.c +++ b/cpukit/rtems/src/partgetbuffer.c @@ -46,6 +46,9 @@ rtems_status_code rtems_partition_get_buffer( Objects_Locations location; void *the_buffer; + if ( !buffer ) + return RTEMS_INVALID_ADDRESS; + the_partition = _Partition_Get( id, &location ); switch ( location ) { case OBJECTS_REMOTE: diff --git a/cpukit/rtems/src/ratemoncancel.c b/cpukit/rtems/src/ratemoncancel.c index 7bd0151760..4315967037 100644 --- a/cpukit/rtems/src/ratemoncancel.c +++ b/cpukit/rtems/src/ratemoncancel.c @@ -31,7 +31,7 @@ * * Output parameters: * RTEMS_SUCCESSFUL - if successful and caller is not the owning thread - * error code - if unsuccessful + * error code - if unsuccessful */ rtems_status_code rtems_rate_monotonic_cancel( @@ -39,7 +39,7 @@ rtems_status_code rtems_rate_monotonic_cancel( ) { Rate_monotonic_Control *the_period; - Objects_Locations location; + Objects_Locations location; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { diff --git a/cpukit/rtems/src/ratemoncreate.c b/cpukit/rtems/src/ratemoncreate.c index d0144a610b..27d397e9ca 100644 --- a/cpukit/rtems/src/ratemoncreate.c +++ b/cpukit/rtems/src/ratemoncreate.c @@ -32,9 +32,9 @@ * id - pointer to rate monotonic id * * Output parameters: - * id - rate monotonic id + * id - rate monotonic id * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful + * error code - if unsuccessful */ rtems_status_code rtems_rate_monotonic_create( @@ -47,6 +47,9 @@ rtems_status_code rtems_rate_monotonic_create( if ( !rtems_is_name_valid( name ) ) return RTEMS_INVALID_NAME; + if ( !id ) + return RTEMS_INVALID_ADDRESS; + _Thread_Disable_dispatch(); /* to prevent deletion */ the_period = _Rate_monotonic_Allocate(); diff --git a/cpukit/rtems/src/ratemondelete.c b/cpukit/rtems/src/ratemondelete.c index 77eb1d7c04..c465c0dc51 100644 --- a/cpukit/rtems/src/ratemondelete.c +++ b/cpukit/rtems/src/ratemondelete.c @@ -31,7 +31,7 @@ * * Output parameters: * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful + * error code - if unsuccessful */ rtems_status_code rtems_rate_monotonic_delete( @@ -39,7 +39,7 @@ rtems_status_code rtems_rate_monotonic_delete( ) { Rate_monotonic_Control *the_period; - Objects_Locations location; + Objects_Locations location; the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { diff --git a/cpukit/rtems/src/ratemongetstatus.c b/cpukit/rtems/src/ratemongetstatus.c index eb718701d4..ed8e5d85f7 100644 --- a/cpukit/rtems/src/ratemongetstatus.c +++ b/cpukit/rtems/src/ratemongetstatus.c @@ -45,7 +45,7 @@ rtems_status_code rtems_rate_monotonic_get_status( Objects_Locations location; Rate_monotonic_Control *the_period; - if ( status == NULL ) + if ( !status ) return RTEMS_INVALID_ADDRESS; the_period = _Rate_monotonic_Get( id, &location ); diff --git a/cpukit/rtems/src/ratemonident.c b/cpukit/rtems/src/ratemonident.c index 5080e376de..53ed0a46b5 100644 --- a/cpukit/rtems/src/ratemonident.c +++ b/cpukit/rtems/src/ratemonident.c @@ -32,9 +32,9 @@ * id - pointer to period id * * Output parameters: - * *id - region id + * *id - region id * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful + * error code - if unsuccessful */ rtems_status_code rtems_rate_monotonic_ident( diff --git a/cpukit/rtems/src/ratemonperiod.c b/cpukit/rtems/src/ratemonperiod.c index ac8a2af00b..fce39a19a7 100644 --- a/cpukit/rtems/src/ratemonperiod.c +++ b/cpukit/rtems/src/ratemonperiod.c @@ -32,7 +32,7 @@ * * Output parameters: * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful + * error code - if unsuccessful */ rtems_status_code rtems_rate_monotonic_period( diff --git a/cpukit/rtems/src/regioncreate.c b/cpukit/rtems/src/regioncreate.c index 74284eb441..012d65a776 100644 --- a/cpukit/rtems/src/regioncreate.c +++ b/cpukit/rtems/src/regioncreate.c @@ -48,7 +48,7 @@ rtems_status_code rtems_region_create( void *starting_address, unsigned32 length, unsigned32 page_size, - rtems_attribute attribute_set, + rtems_attribute attribute_set, Objects_Id *id ) { @@ -57,6 +57,12 @@ rtems_status_code rtems_region_create( if ( !rtems_is_name_valid( name ) ) return RTEMS_INVALID_NAME; + if ( !starting_address ) + return RTEMS_INVALID_ADDRESS; + + if ( !id ) + return RTEMS_INVALID_ADDRESS; + if ( !_Addresses_Is_aligned( starting_address ) ) return RTEMS_INVALID_ADDRESS; diff --git a/cpukit/rtems/src/regiondelete.c b/cpukit/rtems/src/regiondelete.c index d857baae0e..7a41ee4e87 100644 --- a/cpukit/rtems/src/regiondelete.c +++ b/cpukit/rtems/src/regiondelete.c @@ -35,7 +35,7 @@ * * Output parameters: * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful + * error code - if unsuccessful */ rtems_status_code rtems_region_delete( @@ -43,7 +43,7 @@ rtems_status_code rtems_region_delete( ) { register Region_Control *the_region; - Objects_Locations location; + Objects_Locations location; _RTEMS_Lock_allocator(); the_region = _Region_Get( id, &location ); diff --git a/cpukit/rtems/src/regionextend.c b/cpukit/rtems/src/regionextend.c index 85302575fe..b6d3347097 100644 --- a/cpukit/rtems/src/regionextend.c +++ b/cpukit/rtems/src/regionextend.c @@ -51,6 +51,9 @@ rtems_status_code rtems_region_extend( Heap_Extend_status heap_status; rtems_status_code status; + if ( !starting_address ) + return RTEMS_INVALID_ADDRESS; + status = RTEMS_SUCCESSFUL; _RTEMS_Lock_allocator(); /* to prevent deletion */ diff --git a/cpukit/rtems/src/regiongetsegment.c b/cpukit/rtems/src/regiongetsegment.c index 3f57b0f040..b80fd911a7 100644 --- a/cpukit/rtems/src/regiongetsegment.c +++ b/cpukit/rtems/src/regiongetsegment.c @@ -54,6 +54,9 @@ rtems_status_code rtems_region_get_segment( Thread_Control *executing; void *the_segment; + if ( !segment ) + return RTEMS_INVALID_ADDRESS; + *segment = NULL; if ( size == 0 ) diff --git a/cpukit/rtems/src/regiongetsegmentsize.c b/cpukit/rtems/src/regiongetsegmentsize.c index 545268fccb..8a4d1d59db 100644 --- a/cpukit/rtems/src/regiongetsegmentsize.c +++ b/cpukit/rtems/src/regiongetsegmentsize.c @@ -49,6 +49,12 @@ rtems_status_code rtems_region_get_segment_size( Objects_Locations location; Thread_Control *executing; + if ( !segment ) + return RTEMS_INVALID_ADDRESS; + + if ( !size ) + return RTEMS_INVALID_ADDRESS; + _RTEMS_Lock_allocator(); executing = _Thread_Executing; the_region = _Region_Get( id, &location ); diff --git a/cpukit/rtems/src/regionreturnsegment.c b/cpukit/rtems/src/regionreturnsegment.c index 57bb67a408..bc1ecafb9b 100644 --- a/cpukit/rtems/src/regionreturnsegment.c +++ b/cpukit/rtems/src/regionreturnsegment.c @@ -42,7 +42,7 @@ * * Output parameters: * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful + * error code - if unsuccessful */ rtems_status_code rtems_region_return_segment( diff --git a/cpukit/rtems/src/semcreate.c b/cpukit/rtems/src/semcreate.c index 53aa7f0d67..d968a71389 100644 --- a/cpukit/rtems/src/semcreate.c +++ b/cpukit/rtems/src/semcreate.c @@ -81,6 +81,9 @@ rtems_status_code rtems_semaphore_create( if ( !rtems_is_name_valid( name ) ) return RTEMS_INVALID_NAME; + if ( !id ) + return RTEMS_INVALID_ADDRESS; + #if defined(RTEMS_MULTIPROCESSING) if ( _Attributes_Is_global( attribute_set ) ) { diff --git a/cpukit/rtems/src/semdelete.c b/cpukit/rtems/src/semdelete.c index 9f68a806a4..d967ad3553 100644 --- a/cpukit/rtems/src/semdelete.c +++ b/cpukit/rtems/src/semdelete.c @@ -58,7 +58,7 @@ * * Output parameters: * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful + * error code - if unsuccessful */ #if defined(RTEMS_MULTIPROCESSING) diff --git a/cpukit/rtems/src/semflush.c b/cpukit/rtems/src/semflush.c index 596ef0f997..37ebac7548 100644 --- a/cpukit/rtems/src/semflush.c +++ b/cpukit/rtems/src/semflush.c @@ -48,7 +48,7 @@ * * Output parameters: * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful + * error code - if unsuccessful */ #if defined(RTEMS_MULTIPROCESSING) diff --git a/cpukit/rtems/src/semident.c b/cpukit/rtems/src/semident.c index c5d13603cc..7fbd6e994b 100644 --- a/cpukit/rtems/src/semident.c +++ b/cpukit/rtems/src/semident.c @@ -58,9 +58,9 @@ * id - pointer to semaphore id * * Output parameters: - * *id - semaphore id + * *id - semaphore id * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful + * error code - if unsuccessful */ rtems_status_code rtems_semaphore_ident( diff --git a/cpukit/rtems/src/taskcreate.c b/cpukit/rtems/src/taskcreate.c index 0c6d61b063..e0a0e20d8d 100644 --- a/cpukit/rtems/src/taskcreate.c +++ b/cpukit/rtems/src/taskcreate.c @@ -75,6 +75,9 @@ rtems_status_code rtems_task_create( if ( !rtems_is_name_valid( name ) ) return RTEMS_INVALID_NAME; + if ( !id ) + return RTEMS_INVALID_ADDRESS; + /* * Core Thread Initialize insures we get the minimum amount of * stack space. diff --git a/cpukit/rtems/src/taskgetnote.c b/cpukit/rtems/src/taskgetnote.c index 904a9a352b..0b77ac881a 100644 --- a/cpukit/rtems/src/taskgetnote.c +++ b/cpukit/rtems/src/taskgetnote.c @@ -41,9 +41,9 @@ * note - pointer to note * * Output parameters: - * note - filled in if successful + * note - filled in if successful * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful + * error code - if unsuccessful */ rtems_status_code rtems_task_get_note( @@ -56,6 +56,9 @@ rtems_status_code rtems_task_get_note( Objects_Locations location; RTEMS_API_Control *api; + if ( !note ) + return RTEMS_INVALID_ADDRESS; + /* * NOTE: There is no check for < RTEMS_NOTEPAD_FIRST because that would * be checking an unsigned number for being negative. diff --git a/cpukit/rtems/src/taskmode.c b/cpukit/rtems/src/taskmode.c index 9ad56cc888..9249a7b942 100644 --- a/cpukit/rtems/src/taskmode.c +++ b/cpukit/rtems/src/taskmode.c @@ -58,6 +58,9 @@ rtems_status_code rtems_task_mode( boolean needs_asr_dispatching = FALSE; rtems_mode old_mode; + if ( !previous_mode_set ) + return RTEMS_INVALID_ADDRESS; + executing = _Thread_Executing; api = executing->API_Extensions[ THREAD_API_RTEMS ]; asr = &api->Signal; diff --git a/cpukit/rtems/src/taskrestart.c b/cpukit/rtems/src/taskrestart.c index 2e1e9e4c67..a3f3e28839 100644 --- a/cpukit/rtems/src/taskrestart.c +++ b/cpukit/rtems/src/taskrestart.c @@ -43,7 +43,7 @@ * * Output parameters: * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful + * error code - if unsuccessful */ rtems_status_code rtems_task_restart( diff --git a/cpukit/rtems/src/taskresume.c b/cpukit/rtems/src/taskresume.c index 46eaf9ea74..440dbaac66 100644 --- a/cpukit/rtems/src/taskresume.c +++ b/cpukit/rtems/src/taskresume.c @@ -40,7 +40,7 @@ * * Output parameters: * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful + * error code - if unsuccessful */ rtems_status_code rtems_task_resume( diff --git a/cpukit/rtems/src/tasksetnote.c b/cpukit/rtems/src/tasksetnote.c index c93577d860..c06f646ca4 100644 --- a/cpukit/rtems/src/tasksetnote.c +++ b/cpukit/rtems/src/tasksetnote.c @@ -42,7 +42,7 @@ * * Output parameters: * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful + * error code - if unsuccessful */ rtems_status_code rtems_task_set_note( diff --git a/cpukit/rtems/src/tasksuspend.c b/cpukit/rtems/src/tasksuspend.c index b62e537e0d..7f40dd793e 100644 --- a/cpukit/rtems/src/tasksuspend.c +++ b/cpukit/rtems/src/tasksuspend.c @@ -49,7 +49,7 @@ rtems_status_code rtems_task_suspend( ) { register Thread_Control *the_thread; - Objects_Locations location; + Objects_Locations location; the_thread = _Thread_Get( id, &location ); switch ( location ) { diff --git a/cpukit/rtems/src/taskvariableadd.c b/cpukit/rtems/src/taskvariableadd.c index 5347728b53..b3d147a72a 100644 --- a/cpukit/rtems/src/taskvariableadd.c +++ b/cpukit/rtems/src/taskvariableadd.c @@ -32,6 +32,9 @@ rtems_status_code rtems_task_variable_add( Objects_Locations location; rtems_task_variable_t *tvp, *new; + if ( !ptr ) + return RTEMS_INVALID_ADDRESS; + the_thread = _Thread_Get (tid, &location); switch (location) { case OBJECTS_REMOTE: diff --git a/cpukit/rtems/src/taskvariabledelete.c b/cpukit/rtems/src/taskvariabledelete.c index 43a45471ab..b96f317e06 100644 --- a/cpukit/rtems/src/taskvariabledelete.c +++ b/cpukit/rtems/src/taskvariabledelete.c @@ -31,6 +31,9 @@ rtems_status_code rtems_task_variable_delete( Objects_Locations location; rtems_task_variable_t *tvp, *prev; + if ( !ptr ) + return RTEMS_INVALID_ADDRESS; + prev = NULL; the_thread = _Thread_Get (tid, &location); diff --git a/cpukit/rtems/src/taskvariableget.c b/cpukit/rtems/src/taskvariableget.c index 747f635e63..fcee401be2 100644 --- a/cpukit/rtems/src/taskvariableget.c +++ b/cpukit/rtems/src/taskvariableget.c @@ -32,6 +32,12 @@ rtems_status_code rtems_task_variable_get( Objects_Locations location; rtems_task_variable_t *tvp; + if ( !ptr ) + return RTEMS_INVALID_ADDRESS; + + if ( !result ) + return RTEMS_INVALID_ADDRESS; + the_thread = _Thread_Get (tid, &location); switch (location) { case OBJECTS_REMOTE: diff --git a/cpukit/rtems/src/taskwakewhen.c b/cpukit/rtems/src/taskwakewhen.c index 6e938f3e1a..276a0c7f64 100644 --- a/cpukit/rtems/src/taskwakewhen.c +++ b/cpukit/rtems/src/taskwakewhen.c @@ -40,11 +40,11 @@ * * Output parameters: * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful + * error code - if unsuccessful */ rtems_status_code rtems_task_wake_when( -rtems_time_of_day *time_buffer + rtems_time_of_day *time_buffer ) { Watchdog_Interval seconds; @@ -52,6 +52,9 @@ rtems_time_of_day *time_buffer if ( !_TOD_Is_set ) return RTEMS_NOT_DEFINED; + if ( !time_buffer ) + return RTEMS_INVALID_ADDRESS; + time_buffer->ticks = 0; if ( !_TOD_Validate( time_buffer ) ) diff --git a/cpukit/rtems/src/timercreate.c b/cpukit/rtems/src/timercreate.c index d00470fc9b..2a41411bc3 100644 --- a/cpukit/rtems/src/timercreate.c +++ b/cpukit/rtems/src/timercreate.c @@ -47,6 +47,9 @@ rtems_status_code rtems_timer_create( if ( !rtems_is_name_valid( name ) ) return RTEMS_INVALID_NAME; + if ( !id ) + return RTEMS_INVALID_ADDRESS; + _Thread_Disable_dispatch(); /* to prevent deletion */ the_timer = _Timer_Allocate(); diff --git a/cpukit/rtems/src/timerdelete.c b/cpukit/rtems/src/timerdelete.c index 455ca15648..2838d1ee1f 100644 --- a/cpukit/rtems/src/timerdelete.c +++ b/cpukit/rtems/src/timerdelete.c @@ -39,8 +39,8 @@ rtems_status_code rtems_timer_delete( Objects_Id id ) { - Timer_Control *the_timer; - Objects_Locations location; + Timer_Control *the_timer; + Objects_Locations location; the_timer = _Timer_Get( id, &location ); switch ( location ) { diff --git a/cpukit/rtems/src/timerfireafter.c b/cpukit/rtems/src/timerfireafter.c index fa5366826c..7b4660c82b 100644 --- a/cpukit/rtems/src/timerfireafter.c +++ b/cpukit/rtems/src/timerfireafter.c @@ -51,6 +51,9 @@ rtems_status_code rtems_timer_fire_after( if ( ticks == 0 ) return RTEMS_INVALID_NUMBER; + if ( !routine ) + return RTEMS_INVALID_ADDRESS; + the_timer = _Timer_Get( id, &location ); switch ( location ) { case OBJECTS_REMOTE: /* should never return this */ diff --git a/cpukit/rtems/src/timerfirewhen.c b/cpukit/rtems/src/timerfirewhen.c index 5ab4afc0c5..27175ff027 100644 --- a/cpukit/rtems/src/timerfirewhen.c +++ b/cpukit/rtems/src/timerfirewhen.c @@ -55,6 +55,9 @@ rtems_status_code rtems_timer_fire_when( if ( !_TOD_Validate( wall_time ) ) return RTEMS_INVALID_CLOCK; + if ( !routine ) + return RTEMS_INVALID_ADDRESS; + seconds = _TOD_To_seconds( wall_time ); if ( seconds <= _TOD_Seconds_since_epoch ) return RTEMS_INVALID_CLOCK; diff --git a/cpukit/rtems/src/timerserverfireafter.c b/cpukit/rtems/src/timerserverfireafter.c index 341e07a46e..0074ea4c0c 100644 --- a/cpukit/rtems/src/timerserverfireafter.c +++ b/cpukit/rtems/src/timerserverfireafter.c @@ -53,6 +53,9 @@ rtems_status_code rtems_timer_server_fire_after( if ( !_Timer_Server ) return RTEMS_INCORRECT_STATE; + if ( !routine ) + return RTEMS_INVALID_ADDRESS; + if ( ticks == 0 ) return RTEMS_INVALID_NUMBER; diff --git a/cpukit/rtems/src/timerserverfirewhen.c b/cpukit/rtems/src/timerserverfirewhen.c index 52075a839a..9af26bb0c3 100644 --- a/cpukit/rtems/src/timerserverfirewhen.c +++ b/cpukit/rtems/src/timerserverfirewhen.c @@ -57,6 +57,9 @@ rtems_status_code rtems_timer_server_fire_when( if ( !_TOD_Is_set ) return RTEMS_NOT_DEFINED; + if ( !routine ) + return RTEMS_INVALID_ADDRESS; + if ( !_TOD_Validate( wall_time ) ) return RTEMS_INVALID_CLOCK; |