Text   |  XML   |  ReML   |   Visible Warnings:

File System Race Condition  at mkdir-parents.c:22

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

mailbox_move

(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/plugins/lazy-expunge/lazy-expunge-plugin.c)expand/collapse
Show more  
 379  mailbox_move(struct mailbox_list *src_list, const char *src_name,
 380               struct mailbox_list *dest_list, const char **_dest_name)
 381  {
 382          const char *dest_name = *_dest_name;
 383          const char *srcdir, *src2dir, *src3dir, *destdir, *p, *destparent;
 384          const char *origin;
 385          struct stat st;
 386          mode_t mode;
 387          gid_t gid;
 388   
 389          srcdir = mailbox_list_get_path(src_list, src_name,
 390                                         MAILBOX_LIST_PATH_TYPE_MAILBOX);
 391          destdir = mailbox_list_get_path(dest_list, dest_name,
 392                                          MAILBOX_LIST_PATH_TYPE_MAILBOX);
 393          while (rename(srcdir, destdir) < 0) {
 394                  if (errno == ENOENT) {
 395                          /* if this is because the destination parent directory
 396                             didn't exist, create it. */
 397                          p = strrchr(destdir, '/');
 398                          if (p == NULL)
 399                                  return 0;
 400[+]                         destparent = t_strdup_until(destdir, p);
 401                          if (stat(destparent, &st) == 0)
 402                                  return 0;
 403   
 404                          mailbox_list_get_dir_permissions(dest_list, NULL,
 405                                                           &mode, &gid, &origin);
 406                          if (mkdir_parents_chgrp(destparent, mode,
 407[+]                                                 gid, origin) < 0) {
expand/collapse

mkdir_parents_chgrp

(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/mkdir-parents.c)expand/collapse
Show more  
 115  int mkdir_parents_chgrp(const char *path, mode_t mode,
 116                          gid_t gid, const char *gid_origin)
 117  {
 118[+]         return mkdir_parents_chown_full(path, mode, (uid_t)-1, gid, gid_origin);
expand/collapse

mkdir_parents_chown_full

(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/mkdir-parents.c)expand/collapse
Show more  
 80  mkdir_parents_chown_full(const char *path, mode_t mode, uid_t uid, gid_t gid,
 81                           const char *gid_origin)
 82  {
 83          const char *p;
 84          int ret;
 85   
 86[+]         if (mkdir_chown_full(path, mode, uid, gid, gid_origin) < 0) {
expand/collapse

mkdir_chown_full

(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/mkdir-parents.c)expand/collapse
Show more  
 14  mkdir_chown_full(const char *path, mode_t mode, uid_t uid,
 15                   gid_t gid, const char *gid_origin)
 16  {
 17          string_t *str;
 18          mode_t old_mask;
 19          int ret, orig_errno;
 20   
 21          old_mask = umask(0);
 22          ret = mkdir(path, mode);
Show more  
Show more  
Show more  
Show more  




Change Warning 8114.24983 : File System Race Condition

Priority:
State:
Finding:
Owner:
Note: