Text   |  XML   |  ReML   |   Visible Warnings:

Null Pointer Dereference  at virtual-sync.c:374

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

virtual_sync_index_changes

(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/plugins/virtual/virtual-sync.c)expand/collapse
Show more  
 400  static void virtual_sync_index_changes(struct virtual_sync_context *ctx)
 401  {
 402          const ARRAY_TYPE(keywords) *keywords;
 403          struct mail_index_sync_rec sync_rec;
 404   
 405          keywords = mail_index_get_keywords(ctx->index);
 406          ctx->kw_all = array_count(keywords) == 0 ? NULL :
 407                  array_idx(keywords, 0);
 408[+]         while (mail_index_sync_next(ctx->index_sync_ctx, &sync_rec))
 409[+]                 virtual_sync_index_rec(ctx, &sync_rec);
expand/collapse

virtual_sync_index_rec

(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/plugins/virtual/virtual-sync.c)expand/collapse
Show more  
 311  static void virtual_sync_index_rec(struct virtual_sync_context *ctx,
 312                                     const struct mail_index_sync_rec *sync_rec)
 313  {
 314          uint32_t virtual_ext_id = ctx->mbox->virtual_ext_id;
 315          struct virtual_backend_box *bbox;
 316          const struct virtual_mail_index_record *vrec;
 317          const void *data;
 318          enum mail_flags flags;
 319          struct mail_keywords *keywords;
 320          enum modify_type modify_type;
 321          const char *kw_names[2];
 322          uint32_t vseq, seq1, seq2;
 323          bool expunged;
 324   
 325          switch (sync_rec->type) {
 326          case MAIL_INDEX_SYNC_TYPE_APPEND:
 327                  /* don't care */
 328                  return;
 329          case MAIL_INDEX_SYNC_TYPE_EXPUNGE:
 330          case MAIL_INDEX_SYNC_TYPE_FLAGS:
 331          case MAIL_INDEX_SYNC_TYPE_KEYWORD_ADD:
 332          case MAIL_INDEX_SYNC_TYPE_KEYWORD_REMOVE:
 333          case MAIL_INDEX_SYNC_TYPE_KEYWORD_RESET:
 334                  break;
 335          }
 336          if (!mail_index_lookup_seq_range(ctx->sync_view,
 337                                           sync_rec->uid1, sync_rec->uid2,
 338[+]                                          &seq1, &seq2)) {
 339                  /* already expunged, nothing to do. */
 340                  return;
 341          }
 342   
 343          for (vseq = seq1; vseq <= seq2; vseq++) {
 344                  mail_index_lookup_ext(ctx->sync_view, vseq, virtual_ext_id,
 345                                        &data, &expunged);
 346                  vrec = data;
 347   
 348[+]                 bbox = virtual_backend_box_lookup(ctx->mbox, vrec->mailbox_id);
 349                  if (bbox == NULL)
 350                          continue;
 351   
 352                  virtual_backend_box_sync_mail_set(bbox);
 353[+]                 if (!mail_set_uid(bbox->sync_mail, vrec->real_uid))
 354                          i_panic("UID lost unexpectedly");
 355   
 356                  switch (sync_rec->type) {
 357                  case MAIL_INDEX_SYNC_TYPE_EXPUNGE:
 358                          mail_expunge(bbox->sync_mail);
 359                          break;
 360                  case MAIL_INDEX_SYNC_TYPE_FLAGS:
 361                          flags = sync_rec->add_flags & MAIL_FLAGS_NONRECENT;
 362                          if (flags != 0) {
 363                                  mail_update_flags(bbox->sync_mail,
 364                                                    MODIFY_ADD, flags);
 365                          }
 366                          flags = sync_rec->remove_flags & MAIL_FLAGS_NONRECENT;
 367                          if (flags != 0) {
 368                                  mail_update_flags(bbox->sync_mail,
 369                                                    MODIFY_REMOVE, flags);
 370                          }
 371                          break;
 372                  case MAIL_INDEX_SYNC_TYPE_KEYWORD_ADD:
 373                  case MAIL_INDEX_SYNC_TYPE_KEYWORD_REMOVE:
 374                          kw_names[0] = ctx->kw_all[sync_rec->keyword_idx];
Show more  
Show more  




Change Warning 8156.24447 : Null Pointer Dereference

Priority:
State:
Finding:
Owner:
Note: