mirror of
				https://github.com/stedolan/jq.git
				synced 2024-05-11 05:55:39 +00:00 
			
		
		
		
	Fix jv_load_file() (partial fix #799)
This commit is contained in:
		
							
								
								
									
										10
									
								
								jv_file.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								jv_file.c
									
									
									
									
									
								
							@@ -30,14 +30,18 @@ jv jv_load_file(const char* filename, int raw) {
 | 
				
			|||||||
      jv value;
 | 
					      jv value;
 | 
				
			||||||
      while (jv_is_valid((value = jv_parser_next(parser))))
 | 
					      while (jv_is_valid((value = jv_parser_next(parser))))
 | 
				
			||||||
        data = jv_array_append(data, value);
 | 
					        data = jv_array_append(data, value);
 | 
				
			||||||
      jv_free(value);
 | 
					      if (jv_invalid_has_msg(jv_copy(value))) {
 | 
				
			||||||
 | 
					        jv_free(data);
 | 
				
			||||||
 | 
					        data = value;
 | 
				
			||||||
 | 
					        value = jv_invalid();
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  if (!raw)
 | 
					  if (!raw)
 | 
				
			||||||
      jv_parser_free(parser);
 | 
					      jv_parser_free(parser);
 | 
				
			||||||
  int badread = ferror(file);
 | 
					  int badread = ferror(file);
 | 
				
			||||||
  fclose(file);
 | 
					  if (fclose(file) != 0 || badread) {
 | 
				
			||||||
  if (badread) {
 | 
					 | 
				
			||||||
    jv_free(data);
 | 
					    jv_free(data);
 | 
				
			||||||
    return jv_invalid_with_msg(jv_string_fmt("Error reading from %s",
 | 
					    return jv_invalid_with_msg(jv_string_fmt("Error reading from %s",
 | 
				
			||||||
                                             filename));
 | 
					                                             filename));
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user