diff searching.c @ 68:3b45c78f061e src

Some NULL-pointer check from aschultz@cs.uni-magdeburg.de
author richwareham
date Fri, 26 Jul 2002 07:27:52 +0000
parents a7b12d28a6ab
children 0e2abe7083de
line wrap: on
line diff
--- a/searching.c	Thu Jul 25 14:51:40 2002 +0000
+++ b/searching.c	Fri Jul 26 07:27:52 2002 +0000
@@ -221,14 +221,24 @@
 }
 
 dvdnav_status_t dvdnav_part_search(dvdnav_t *this, int part) {
+
+  if((!this) || (!this->vm) )
+    return S_ERR;
+
   return S_OK;
 }
 
 dvdnav_status_t dvdnav_prev_pg_search(dvdnav_t *this) {
   dvd_state_t *state;
+
+  if((!this) || (!this->vm) )
+    return S_ERR;
+
   state = &(this->vm->state);
+  if((!state) || (!state->pgc) )
+    return S_ERR;
+
   /* Make sure this is not the first chapter */
-  
   if(state->pgN <= 1 ) {
     fprintf(stderr,"dvdnav: at first chapter. prev chapter failed.\n");
     return S_ERR;
@@ -243,6 +253,9 @@
 
 dvdnav_status_t dvdnav_top_pg_search(dvdnav_t *this) {
 
+  if((!this) || (!this->vm) )
+    return S_ERR;
+    
   fprintf(stderr,"dvdnav: top chapter. NOP.\n");
   
   return S_OK;
@@ -250,7 +263,14 @@
 
 dvdnav_status_t dvdnav_next_pg_search(dvdnav_t *this) {
   dvd_state_t *state;
+
+  if((!this) || (!this->vm) )
+    return S_ERR;
+
   state = &(this->vm->state);
+  if((!state) || (!state->pgc) )
+    return S_ERR;
+
   /* Make sure this is not the last chapter */
   if(state->pgN >= state->pgc->nr_of_programs) {
     fprintf(stderr,"dvdnav: at last chapter. next chapter failed.\n");
@@ -267,6 +287,9 @@
 dvdnav_status_t dvdnav_menu_call(dvdnav_t *this, DVDMenuID_t menu) {
   dvd_state_t *state;
 
+  if((!this) || (!this->vm) )
+    return S_ERR;
+
   pthread_mutex_lock(&this->vm_lock); 
   state = &(this->vm->state);
   if (vm_menu_call(this->vm, menu, 0))