Text   |  XML   |  ReML   |   Visible Warnings:

Buffer Overrun  at color_filters.c:529

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

read_filters_file

(/home/sate/Testcases/c/cve/wireshark-1.2.0/color_filters.c)expand/collapse
Show more  
 465  read_filters_file(FILE *f, gpointer user_data)
 466  {
 467  #define INIT_BUF_SIZE 128
 468          gchar  *name = NULL;
 469          gchar  *filter_exp = NULL;
 470          guint32 name_len = INIT_BUF_SIZE;
 471          guint32 filter_exp_len = INIT_BUF_SIZE;
 472          guint32 i = 0;
 473          gint32  c;
 474          guint16 fg_r, fg_g, fg_b, bg_r, bg_g, bg_b;
 475          gboolean disabled = FALSE;
 476          gboolean skip_end_of_line = FALSE;
 477   
 478          name = g_malloc(name_len + 1);
 479          filter_exp = g_malloc(filter_exp_len + 1);
 480   
 481          while (1) {
 482   
 483                  if (skip_end_of_line) {
 484                          do {
 485                                  c = getc(f);
 486                          } while (c != EOF && c != '\n');
 487                          if (c == EOF)
 488                                  break;
 489                          disabled = FALSE;
 490                          skip_end_of_line = FALSE;
 491                  }
 492   
 493                  while ((c = getc(f)) != EOF && isspace(c)) {
 494                          if (c == '\n') {
 495                                  continue;
 496                          }
 497                  }
 498   
 499                  if (c == EOF)
 500                          break;
 501   
 502                  if (c == '!') {
 503                          disabled = TRUE;
 504                          continue;
 505                  }
 506   
 507                  /* skip # comments and invalid lines */
 508                  if (c != '@') {
 509                          skip_end_of_line = TRUE;
 510                          continue;
 511                  }
 512   
 513                  /* we get the @ delimiter.
 514                   * Format is:
 515                   * @name@filter expression@[background r,g,b][foreground r,g,b]
 516                   */
 517   
 518                  /* retrieve name */
 519                  i = 0;
 520                  while (1) {
 521                          c = getc(f);
 522                          if (c == EOF || c == '@')
 523                                  break;
 524                          if (i >= name_len) {
 525                                  /* buffer isn't long enough; double its length.*/
 526                                  name_len *= 2;
 527                                  name = g_realloc(name, name_len + 1);
 528                          }
 529                          name[i++] = c;
Show more  




Change Warning 3987.30802 : Buffer Overrun

Priority:
State:
Finding:
Owner:
Note: