Text   |  XML   |  ReML   |   Visible Warnings:

Leak  at dbox-sync-rebuild.c:265

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

dbox_sync_index_maildir_file

(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib-storage/index/dbox/dbox-sync-rebuild.c)expand/collapse
Show more  
 246  dbox_sync_index_maildir_file(struct dbox_sync_rebuild_context *ctx,
 247                               const char *fname)
 248  {
 249          struct dbox_file *file;
 250          uoff_t offset = 0;
 251          int ret;
 252   
 253          if (ctx->mbox->maildir_sync_keywords == NULL) {
 254                  ctx->maildir_uidlist =
 255                          maildir_uidlist_init_readonly(&ctx->mbox->ibox);
 256                  ctx->mk = maildir_keywords_init_readonly(&ctx->mbox->ibox.box);
 257                  ctx->mbox->maildir_sync_keywords =
 258                          maildir_keywords_sync_init(ctx->mk,
 259                                                     ctx->mbox->ibox.index);
 260   
 261                  if (maildir_uidlist_refresh(ctx->maildir_uidlist) < 0)
 262                          return -1;
 263          }
 264   
 265[+]         file = dbox_file_init_new_maildir(ctx->mbox, fname);
expand/collapse

dbox_file_init_new_maildir

(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib-storage/index/dbox/dbox-file.c)expand/collapse
Show more  
 195  struct dbox_file *
 196  dbox_file_init_new_maildir(struct dbox_mailbox *mbox, const char *fname)
 197  {
 198          struct dbox_file *file;
 199   
 200[+]         file = dbox_file_init(mbox, 0);
expand/collapse

dbox_file_init

(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib-storage/index/dbox/dbox-file.c)expand/collapse
Show more  
 154  struct dbox_file *
 155  dbox_file_init(struct dbox_mailbox *mbox, unsigned int file_id)
 156  {
 157          struct dbox_file *file;
 158          unsigned int count;
 159          bool maildir;
 160   
 161          file = file_id == 0 ? NULL :
 162                  dbox_find_and_move_open_file(mbox, file_id);
 163          if (file != NULL) {
 164                  file->refcount++;
 165                  return file;
 166          }
 167   
 168          count = array_count(&mbox->open_files);
 169          if (count > mbox->max_open_files)
 170                  dbox_close_open_files(mbox, count - mbox->max_open_files);
 171   
 172[+]         file = i_new(struct dbox_file, 1);
expand/collapse

i_malloc

(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/imem.c)expand/collapse
Show more  
 7  void *i_malloc(size_t size)
 8  {
 9      void *rv = malloc(size);
 10      if( !rv )
 11          abort();
 12      return rv;
Show more  
 173          file->refcount = 1;
 174          file->mbox = mbox;
 175          if (file_id != 0) {
 176                  file->file_id = file_id;
 177                  file->fname = dbox_file_id_get_fname(mbox, file_id, &maildir);
 178                  file->maildir_file = maildir;
 179          } else {
 180                  file->fname = dbox_generate_tmp_filename();
 181          }
 182          if (file->maildir_file || file_id == 0) {
 183                  /* newly created files and maildir files always exist in the
 184                     primary path */
 185                  file->current_path =
 186                          i_strdup_printf("%s/%s", mbox->path, file->fname);
 187          }
 188          file->fd = -1;
 189   
 190          if (file_id != 0)
 191                  array_append(&file->mbox->open_files, &file, 1);
 192          return file;
Show more  
 201          file->maildir_file = TRUE;
 202          file->fname = i_strdup(fname);
 203          return file;
Show more  
 266[+]         if ((ret = dbox_sync_index_file_next(ctx, file, &offset)) > 0) {
 267                  dbox_index_append_file(ctx->append_ctx, file);
 268                  /* appending referenced the file, so make sure it gets closed
 269                     so we don't have too many open files. */
 270                  dbox_file_close(file);
 271          }
 272[+]         dbox_file_unref(&file);
expand/collapse

dbox_file_unref

(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib-storage/index/dbox/dbox-file.c)expand/collapse
Show more  
 240  void dbox_file_unref(struct dbox_file **_file)
 241  {
 242          struct dbox_file *file = *_file;
 243          struct dbox_file *const *files;
 244          unsigned int i, count;
 245   
 246          *_file = NULL;
 247   
 248          i_assert(file->refcount > 0);
 249          if (--file->refcount > 0)
 250                  return;
 251   
 252          /* don't cache  seeks while file isn't being referenced */
 253          file-> = 0;
 254   
 255          if (file->file_id != 0) {
 256                  files = array_get(&file->mbox->open_files, &count);
 257                  if (!file->deleted && count <= file->mbox->max_open_files) {
 258                          /* we can leave this file open for now */
 259                          return;
Show more  
Show more  




Change Warning 11690.25716 : Leak

Priority:
State:
Finding:
Owner:
Note: