wmmisc: Add error handling for fscanf.
This commit is contained in:
		
							parent
							
								
									ced470da36
								
							
						
					
					
						commit
						80e3fdf32a
					
				
					 1 changed files with 29 additions and 12 deletions
				
			
		| 
						 | 
					@ -35,6 +35,7 @@ dockapp_utils_get_proc( void )
 | 
				
			||||||
   int p_load[2];
 | 
					   int p_load[2];
 | 
				
			||||||
   int p_run = 0;
 | 
					   int p_run = 0;
 | 
				
			||||||
   int p_total = 0;
 | 
					   int p_total = 0;
 | 
				
			||||||
 | 
					   int count;
 | 
				
			||||||
   FILE* put_buf = NULL;
 | 
					   FILE* put_buf = NULL;
 | 
				
			||||||
   float p_uptime = 0.00;
 | 
					   float p_uptime = 0.00;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -44,7 +45,7 @@ dockapp_utils_get_proc( void )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   if ( NULL != pla_buf )
 | 
					   if ( NULL != pla_buf )
 | 
				
			||||||
   {
 | 
					   {
 | 
				
			||||||
      fscanf( pla_buf,
 | 
					      count = fscanf( pla_buf,
 | 
				
			||||||
	      "%d.%d %*s %*s %d/%d %*s",
 | 
						      "%d.%d %*s %*s %d/%d %*s",
 | 
				
			||||||
	      &p_load[0],
 | 
						      &p_load[0],
 | 
				
			||||||
	      &p_load[1],
 | 
						      &p_load[1],
 | 
				
			||||||
| 
						 | 
					@ -52,10 +53,17 @@ dockapp_utils_get_proc( void )
 | 
				
			||||||
	      &p_total );
 | 
						      &p_total );
 | 
				
			||||||
      fclose( pla_buf );
 | 
					      fclose( pla_buf );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if (count == 4) {
 | 
				
			||||||
	      dockapp_proc.total = p_total;
 | 
						      dockapp_proc.total = p_total;
 | 
				
			||||||
	      dockapp_proc.running = p_run;
 | 
						      dockapp_proc.running = p_run;
 | 
				
			||||||
	      dockapp_proc.load[0] = p_load[0];
 | 
						      dockapp_proc.load[0] = p_load[0];
 | 
				
			||||||
	      dockapp_proc.load[1] = p_load[1];
 | 
						      dockapp_proc.load[1] = p_load[1];
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
						      dockapp_proc.total = 0;
 | 
				
			||||||
 | 
						      dockapp_proc.running = 0;
 | 
				
			||||||
 | 
						      dockapp_proc.load[0] = 0;
 | 
				
			||||||
 | 
						      dockapp_proc.load[1] = 0;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
   }
 | 
					   }
 | 
				
			||||||
   else
 | 
					   else
 | 
				
			||||||
   {
 | 
					   {
 | 
				
			||||||
| 
						 | 
					@ -69,15 +77,24 @@ dockapp_utils_get_proc( void )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if ( NULL != put_buf )
 | 
					  if ( NULL != put_buf )
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
     fscanf( put_buf, "%f %*s", &p_uptime );
 | 
					     count = fscanf( put_buf, "%f %*s", &p_uptime );
 | 
				
			||||||
     fclose( put_buf );
 | 
					     fclose( put_buf );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					     if (count == 1) {
 | 
				
			||||||
	     dockapp_proc.jiffies = p_uptime;
 | 
						     dockapp_proc.jiffies = p_uptime;
 | 
				
			||||||
	     dockapp_proc.seconds = GET_SECS( p_uptime );
 | 
						     dockapp_proc.seconds = GET_SECS( p_uptime );
 | 
				
			||||||
	     dockapp_proc.minutes = GET_MINS( p_uptime );
 | 
						     dockapp_proc.minutes = GET_MINS( p_uptime );
 | 
				
			||||||
	     dockapp_proc.hours = GET_HRS( p_uptime );
 | 
						     dockapp_proc.hours = GET_HRS( p_uptime );
 | 
				
			||||||
	     dockapp_proc.days = GET_DAYS( p_uptime );
 | 
						     dockapp_proc.days = GET_DAYS( p_uptime );
 | 
				
			||||||
	     dockapp_proc.weeks = GET_WEEKS( p_uptime );
 | 
						     dockapp_proc.weeks = GET_WEEKS( p_uptime );
 | 
				
			||||||
 | 
					     } else {
 | 
				
			||||||
 | 
						     dockapp_proc.jiffies = 0.00;
 | 
				
			||||||
 | 
						     dockapp_proc.seconds = 0;
 | 
				
			||||||
 | 
						     dockapp_proc.minutes = 0;
 | 
				
			||||||
 | 
						     dockapp_proc.hours = 0;
 | 
				
			||||||
 | 
						     dockapp_proc.days = 0;
 | 
				
			||||||
 | 
						     dockapp_proc.weeks = 0;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if 0
 | 
					#if 0
 | 
				
			||||||
     printf( "Uptime: %.2d:%.2d:%.2d, %d day%c, %.3d week%c\n",
 | 
					     printf( "Uptime: %.2d:%.2d:%.2d, %d day%c, %.3d week%c\n",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue