Ignore:
Timestamp:
Jun 26, 2020, 7:16:26 PM (5 years ago)
Author:
bird
Message:

kmk: Avoid setting umask just to get it, store the current value in a global variable (g_fUMask). The umask(0777) call in cp.c raced other code (kmk_append) that created files and directories, leaving us with read-only files sometimes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kmk/function.c

    r3359 r3389  
    56655665    }
    56665666
    5667   u = umask (002);
    5668   umask (u);
     5667  u = g_fUMask;
     5668  assert (u == umask (g_fUMask));
    56695669
    56705670  if (symbolic)
     
    57345734      if (argv[1] != NULL)
    57355735          OS (error, reading_file, _("$(%s ) too many arguments for octal mode"), funcname);
     5736
     5737      umask (u);
     5738      g_fUMask = u;
    57365739  }
    57375740  else
    57385741  {
    5739       u = umask(0);
    5740       umask(u);
    57415742      OS (error, reading_file, _("$(%s ) symbol mode is not implemented"), funcname);
    57425743  }
    5743 
    5744   umask(u);
    57455744
    57465745  return o;
Note: See TracChangeset for help on using the changeset viewer.