Text   |  XML   |  ReML   |   Visible Warnings:

Null Pointer Dereference  at dtd_parse.c:2331

No properties have been set. | edit properties
Jump to warning location ↓ warning details...
Show Events | Options

init_xml_names

(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dissectors/packet-xml.c)expand/collapse
Show more  
 1194  static void init_xml_names(void) {
 1195          xml_ns_t* xmlpi_xml_ns;
 1196          guint i;
 1197          DIRECTORY_T* dir;
 1198          const FILE_T* file;
 1199          const gchar* filename;
 1200          gchar* dirname;
 1201   
 1202          GError** dummy = g_malloc(sizeof(GError *));
 1203          *dummy = NULL;
 1204   
 1205          xmpli_names = g_hash_table_new(g_str_hash,g_str_equal);
 1206          media_types = g_hash_table_new(g_str_hash,g_str_equal);
 1207   
 1208          unknown_ns.elements = xml_ns.elements = g_hash_table_new(g_str_hash,g_str_equal);
 1209          unknown_ns.attributes = xml_ns.attributes = g_hash_table_new(g_str_hash,g_str_equal);
 1210   
 1211          xmlpi_xml_ns = xml_new_namespace(xmpli_names,"xml","version","encoding","standalone",NULL);
 1212   
 1213          g_hash_table_destroy(xmlpi_xml_ns->elements);
 1214          xmlpi_xml_ns->elements = NULL;
 1215   
 1216   
 1217          dirname = get_persconffile_path("dtds", FALSE, FALSE);
 1218   
 1219[+]         if (test_for_directory(dirname) != EISDIR) {
 1220                  /* Although dir isn't a directory it may still use memory */
 1221                  g_free(dirname);
 1222                  dirname = get_datafile_path("dtds");
 1223          }
 1224   
 1225[+]         if (test_for_directory(dirname) == EISDIR) {
 1226   
 1227                  if ((dir = OPENDIR_OP(dirname)) != NULL) {
 1228                          while ((file = DIRGETNEXT_OP(dir)) != NULL) {
 1229                                  guint namelen;
 1230                                  filename = GETFNAME_OP(file);
 1231   
 1232                                  namelen = (int)strlen(filename);
 1233                                  if ( namelen > 4 && ( g_ascii_strcasecmp(filename+(namelen-4),".dtd")  == 0 ) ) {
 1234                                          GString* errors = g_string_new("");
 1235[+]                                         GString* preparsed = dtd_preparse(dirname, filename, errors);
 1236                                          dtd_build_data_t* dtd_data;
 1237   
 1238                                          if (errors->len) {
 1239                                                  report_failure("Dtd Preparser in file %s%c%s: %s",dirname,G_DIR_SEPARATOR,filename,errors->str);
 1240                                                  continue;
 1241                                          }
 1242   
 1243[+]                                         dtd_data = dtd_parse(preparsed);
expand/collapse

dtd_parse

(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dtd_parse.c)expand/collapse
Show more  
 2327  extern dtd_build_data_t* dtd_parse(GString* s) {
 2328   
 2329          input_string = s;
 2330          offset = 0;
 2331          len = (guint) input_string->len;
Show more  
Show more  




Change Warning 3086.30809 : Null Pointer Dereference

Priority:
State:
Finding:
Owner:
Note: