[Cmake-commits] [cmake-commits] king committed ProcessUNIX.c 1.82 1.83

cmake-commits at cmake.org cmake-commits at cmake.org
Wed Jun 10 11:46:23 EDT 2009


Update of /cvsroot/CMake/CMake/Source/kwsys
In directory public:/mounts/ram/cvs-serv31465/Source/kwsys

Modified Files:
	ProcessUNIX.c 
Log Message:
BUG: Fix non-select process impl without timeout

This avoids use of an uninitialized value in the KWSys ProcessUNIX
polling implementation when no timeout is given.


Index: ProcessUNIX.c
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/kwsys/ProcessUNIX.c,v
retrieving revision 1.82
retrieving revision 1.83
diff -C 2 -d -r1.82 -r1.83
*** ProcessUNIX.c	23 Apr 2009 15:09:32 -0000	1.82
--- ProcessUNIX.c	10 Jun 2009 15:46:21 -0000	1.83
***************
*** 157,161 ****
  static int kwsysProcessGetTimeoutLeft(kwsysProcessTime* timeoutTime,
                                        double* userTimeout,
!                                       kwsysProcessTimeNative* timeoutLength);
  static kwsysProcessTime kwsysProcessTimeGetCurrent(void);
  static double kwsysProcessTimeToDouble(kwsysProcessTime t);
--- 157,162 ----
  static int kwsysProcessGetTimeoutLeft(kwsysProcessTime* timeoutTime,
                                        double* userTimeout,
!                                       kwsysProcessTimeNative* timeoutLength,
!                                       int zeroIsExpired);
  static kwsysProcessTime kwsysProcessTimeGetCurrent(void);
  static double kwsysProcessTimeToDouble(kwsysProcessTime t);
***************
*** 1098,1102 ****
    if(kwsysProcessGetTimeoutLeft(&wd->TimeoutTime,
                                  wd->User?wd->UserTimeout:0,
!                                 &timeoutLength))
      {
      /* Timeout has already expired.  */
--- 1099,1103 ----
    if(kwsysProcessGetTimeoutLeft(&wd->TimeoutTime,
                                  wd->User?wd->UserTimeout:0,
!                                 &timeoutLength, 0))
      {
      /* Timeout has already expired.  */
***************
*** 1211,1222 ****
  
    if(kwsysProcessGetTimeoutLeft(&wd->TimeoutTime, wd->User?wd->UserTimeout:0,
!                                 &timeoutLength))
!     {
!     /* Timeout has already expired.  */
!     wd->Expired = 1;
!     return 1;
!     }
! 
!   if((timeoutLength.tv_sec == 0) && (timeoutLength.tv_usec == 0))
      {
      /* Timeout has already expired.  */
--- 1212,1216 ----
  
    if(kwsysProcessGetTimeoutLeft(&wd->TimeoutTime, wd->User?wd->UserTimeout:0,
!                                 &timeoutLength, 1))
      {
      /* Timeout has already expired.  */
***************
*** 1906,1910 ****
  static int kwsysProcessGetTimeoutLeft(kwsysProcessTime* timeoutTime,
                                        double* userTimeout,
!                                       kwsysProcessTimeNative* timeoutLength)
  {
    if(timeoutTime->tv_sec < 0)
--- 1900,1905 ----
  static int kwsysProcessGetTimeoutLeft(kwsysProcessTime* timeoutTime,
                                        double* userTimeout,
!                                       kwsysProcessTimeNative* timeoutLength,
!                                       int zeroIsExpired)
  {
    if(timeoutTime->tv_sec < 0)
***************
*** 1926,1930 ****
        }
  
!     if(timeLeft.tv_sec < 0)
        {
        /* Timeout has already expired.  */
--- 1921,1926 ----
        }
  
!     if(timeLeft.tv_sec < 0 ||
!        (timeLeft.tv_sec == 0 && timeLeft.tv_usec == 0 && zeroIsExpired))
        {
        /* Timeout has already expired.  */



More information about the Cmake-commits mailing list