Text   |  XML   |  ReML   |   Visible Warnings:

File System Race Condition  at main.c:158

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

create_unix_listener

(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/auth/main.c)expand/collapse
Show more  
 122  static int create_unix_listener(const char *env, int backlog)
 123  {
 124          const char *path, *mode, *user, *group;
 125          mode_t old_umask;
 126          unsigned int mask;
 127          uid_t uid;
 128          gid_t gid;
 129          int fd;
 130   
 131          path = getenv(env);
 132          if (path == NULL)
 133                  return -1;
 134   
 135          mode = getenv(t_strdup_printf("%s_MODE", env));
 136          if (mode == NULL)
 137                  mask = 0177; /* default to 0600 */
 138          else {
 139                  if (sscanf(mode, "%o", &mask) != 1)
 140                          i_fatal("%s: Invalid mode %s", env, mode);
 141                  mask = (mask ^ 0777) & 0777;
 142          }
 143   
 144          old_umask = umask(mask);
 145[+]         fd = net_listen_unix_unlink_stale(path, backlog);
 146          umask(old_umask);
 147          if (fd == -1) {
 148                  if (errno == EADDRINUSE)
 149                          i_fatal("Socket already exists: %s", path);
 150                  else 
 151                          i_fatal("net_listen_unix(%s) failed: %m", path);
 152          }
 153   
 154          user = getenv(t_strdup_printf("%s_USER", env));
 155          group = getenv(t_strdup_printf("%s_GROUP", env));
 156   
 157          uid = get_uid(user); gid = get_gid(group);
 158          if (chown(path, uid, gid) < 0) {
Show more  




Change Warning 7604.24790 : File System Race Condition

Priority:
State:
Finding:
Owner:
Note: