vhook/ppm.c:166: error: Null Dereference
  pointer `in` last assigned on line 163 could be null and is dereferenced by call to `fgets()` at line 166, column 10.

vhook/ppm.c:160:1: start of procedure rwpipe_read_ppm_header()
158. */
159. 
160. static int rwpipe_read_ppm_header( rwpipe *rw, int *width, int *height )
     ^
161. {
162.     char line[ 3 ];

vhook/ppm.c:163:5: 
161. {
162.     char line[ 3 ];
163.     FILE *in = rwpipe_reader( rw );
         ^
164.     int max;
165. 

vhook/ppm.c:107:1: start of procedure rwpipe_reader()
  105. */
  106. 
  107. static FILE *rwpipe_reader( rwpipe *this )
       ^
  108. {
  109.     if ( this != NULL )

vhook/ppm.c:109:10: Taking false branch
  107. static FILE *rwpipe_reader( rwpipe *this )
  108. {
  109.     if ( this != NULL )
                ^
  110.         return this->reader;
  111.     else

vhook/ppm.c:112:9: 
  110.         return this->reader;
  111.     else
  112.         return NULL;
               ^
  113. }
  114. 

vhook/ppm.c:113:1: return from a call to rwpipe_reader
  111.     else
  112.         return NULL;
  113. }
       ^
  114. 
  115. /** Write data to the pipe.

vhook/ppm.c:166:10: 
164.     int max;
165. 
166.     if (!fgets( line, 3, in ))
              ^
167.         return -1;
168. 
