vhook/ppm.c:133: error: Null Dereference
  pointer `in` last assigned on line 129 could be null and is dereferenced by call to `fgetc()` at line 133, column 13.

vhook/ppm.c:125:1: start of procedure rwpipe_read_number()
123. */
124. 
125. static int rwpipe_read_number( rwpipe *rw )
     ^
126. {
127.     int value = 0;

vhook/ppm.c:127:5: 
125. static int rwpipe_read_number( rwpipe *rw )
126. {
127.     int value = 0;
         ^
128.     int c = 0;
129.     FILE *in = rwpipe_reader( rw );

vhook/ppm.c:128:5: 
126. {
127.     int value = 0;
128.     int c = 0;
         ^
129.     FILE *in = rwpipe_reader( rw );
130. 

vhook/ppm.c:129:5: 
127.     int value = 0;
128.     int c = 0;
129.     FILE *in = rwpipe_reader( rw );
         ^
130. 
131.     do

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

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

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

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

vhook/ppm.c:133:9: 
131.     do
132.     {
133.         c = fgetc( in );
             ^
134. 
135.         while( c != EOF && !isdigit( c ) && c != '#' )
