summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-10-21 16:38:49 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-10-21 16:38:49 +0000
commit812f440589acb2a6768bf08db856edd74c6e27fc (patch)
treea358c31c801b2e1e32afecddbd7af511f8163681 /c
parentAdded sh-rtemself and m68k-rtemself. (diff)
downloadrtems-812f440589acb2a6768bf08db856edd74c6e27fc.tar.bz2
Fixed core dump caused when output parameter (otimer) was NULL.
Diffstat (limited to 'c')
-rw-r--r--c/src/exec/posix/src/ptimer.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/c/src/exec/posix/src/ptimer.c b/c/src/exec/posix/src/ptimer.c
index f44a0b28b3..81d1d35e1d 100644
--- a/c/src/exec/posix/src/ptimer.c
+++ b/c/src/exec/posix/src/ptimer.c
@@ -589,6 +589,7 @@ int timer_settime(
rtems_status_code return_v; /* Return of the calls to RTEMS */
int timer_pos; /* Position of the timer in the table */
rtems_time_of_day rtems_time; /* Time in RTEMS */
+
/* First the position in the table of timers is obtained */
@@ -623,7 +624,8 @@ int timer_settime(
/* The old data of the timer are returned */
- COPY_ITIMERSPEC_S ( &timer_struct[timer_pos].timer_data, ovalue );
+ if ( ovalue )
+ COPY_ITIMERSPEC_S ( &timer_struct[timer_pos].timer_data, ovalue );
/* The new data are set */
@@ -682,7 +684,8 @@ int timer_settime(
/* Actualizes the data of the structure and
* returns the old ones in "ovalue" */
- COPY_ITIMERSPEC_S ( &timer_struct[timer_pos].timer_data, ovalue );
+ if ( ovalue )
+ COPY_ITIMERSPEC_S ( &timer_struct[timer_pos].timer_data, ovalue );
COPY_ITIMERSPEC_S ( value, &timer_struct[timer_pos].timer_data );
@@ -757,7 +760,8 @@ int timer_settime(
/* Actualizes the data of the structure and
* returns the old ones in "ovalue" */
- COPY_ITIMERSPEC_S ( &timer_struct[timer_pos].timer_data, ovalue );
+ if ( ovalue )
+ COPY_ITIMERSPEC_S ( &timer_struct[timer_pos].timer_data, ovalue );
COPY_ITIMERSPEC_S ( value, &timer_struct[timer_pos].timer_data );