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

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

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

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

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

vhook/ppm.c:109:9: 
  107.         return this->reader;
  108.     else
  109.         return NULL;
               ^
  110. }
  111. 

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

vhook/ppm.c:163:5: 
161.     int max;
162. 
163.     fgets( line, 3, in );
         ^
164.     if ( !strncmp( line, "P6", 2 ) )
165.     {
