Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Preparing surf_parser to be hijacked
authoralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Tue, 16 Aug 2005 18:51:50 +0000 (18:51 +0000)
committeralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Tue, 16 Aug 2005 18:51:50 +0000 (18:51 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@1649 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/surf/surf_parse.c

index b810106..1331cba 100644 (file)
@@ -150,6 +150,10 @@ void ETag_argument(void)
 }
 
 void  surf_parse_open(const char *file) {
 }
 
 void  surf_parse_open(const char *file) {
+  if(!file) {
+    WARN0("I hope you know what you're doing... you just gave me a NULL pointer!");
+    return;
+  }
   if(!surf_input_buffer_stack) 
     surf_input_buffer_stack = xbt_dynar_new(sizeof(YY_BUFFER_STATE),NULL);
   if(!surf_file_to_parse_stack) 
   if(!surf_input_buffer_stack) 
     surf_input_buffer_stack = xbt_dynar_new(sizeof(YY_BUFFER_STATE),NULL);
   if(!surf_file_to_parse_stack) 
@@ -168,8 +172,10 @@ void  surf_parse_close(void) {
   if(surf_file_to_parse_stack) 
     xbt_dynar_free(&surf_file_to_parse_stack);
 
   if(surf_file_to_parse_stack) 
     xbt_dynar_free(&surf_file_to_parse_stack);
 
-  surf_parse__delete_buffer(surf_input_buffer);
-  fclose(surf_file_to_parse);
+  if(surf_file_to_parse) {
+    surf_parse__delete_buffer(surf_input_buffer);
+    fclose(surf_file_to_parse);
+  }
 }
 
 int surf_parse(void)
 }
 
 int surf_parse(void)