| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/openssh/src/openbsd-compat/mktemp.c | 
| Switch to Source code | Preprocessed file | 
| Line | Source | Count | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||||||||||||||
| 2 | - | |||||||||||||||||||||||||
| 3 | - | |||||||||||||||||||||||||
| 4 | - | |||||||||||||||||||||||||
| 5 | - | |||||||||||||||||||||||||
| 6 | - | |||||||||||||||||||||||||
| 7 | static int | - | ||||||||||||||||||||||||
| 8 | mktemp_internal(char *path, int slen, int mode) | - | ||||||||||||||||||||||||
| 9 | { | - | ||||||||||||||||||||||||
| 10 | char *start, *cp, *ep; | - | ||||||||||||||||||||||||
| 11 | const char *tempchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; | - | ||||||||||||||||||||||||
| 12 | unsigned int r, tries; | - | ||||||||||||||||||||||||
| 13 | struct stat sb; | - | ||||||||||||||||||||||||
| 14 | size_t len; | - | ||||||||||||||||||||||||
| 15 | int fd; | - | ||||||||||||||||||||||||
| 16 | - | |||||||||||||||||||||||||
| 17 | len = strlen(path); | - | ||||||||||||||||||||||||
| 18 |  if (len == 0
 
 
 
  | 0 | ||||||||||||||||||||||||
| 19 | - | |||||||||||||||||||||||||
| 20 | (*__errno_location ()) | - | ||||||||||||||||||||||||
| 21 | = | - | ||||||||||||||||||||||||
| 22 | 22 | - | ||||||||||||||||||||||||
| 23 | ; | - | ||||||||||||||||||||||||
| 24 |   return never executed:  (-1);return(-1);never executed:  return(-1); | 0 | ||||||||||||||||||||||||
| 25 | } | - | ||||||||||||||||||||||||
| 26 | ep = path + len - slen; | - | ||||||||||||||||||||||||
| 27 | - | |||||||||||||||||||||||||
| 28 | tries = 1; | - | ||||||||||||||||||||||||
| 29 |  for (start = ep; start > path
 
  | 0 | ||||||||||||||||||||||||
| 30 |   if (tries < 0x7fffffff / (sizeof("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") - 1)
  | 0 | ||||||||||||||||||||||||
| 31 |    tries *= (sizeof("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") - 1); never executed:  tries *= (sizeof("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") - 1); | 0 | ||||||||||||||||||||||||
| 32 |  } never executed:  end of block | 0 | ||||||||||||||||||||||||
| 33 | tries *= 2; | - | ||||||||||||||||||||||||
| 34 | - | |||||||||||||||||||||||||
| 35 | do { | - | ||||||||||||||||||||||||
| 36 |   for (cp = start; cp != ep
  | 0 | ||||||||||||||||||||||||
| 37 | r = arc4random_uniform((sizeof("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") - 1)); | - | ||||||||||||||||||||||||
| 38 | *cp = tempchars[r]; | - | ||||||||||||||||||||||||
| 39 |   } never executed:  end of block | 0 | ||||||||||||||||||||||||
| 40 | - | |||||||||||||||||||||||||
| 41 | switch (mode) { | - | ||||||||||||||||||||||||
| 42 |   case never executed:   0:case 0:never executed:  case 0: | 0 | ||||||||||||||||||||||||
| 43 |    if (lstat(path, &sb) != 0
  | 0 | ||||||||||||||||||||||||
| 44 |     return never executed:  (return( (*__errno_location ()) == 2 ? 0 : -1);never executed:  return( (*__errno_location ()) == 2 ? 0 : -1); | 0 | ||||||||||||||||||||||||
| 45 |           (*
 
 never executed:  return( (*__errno_location ()) == 2 ? 0 : -1); | 0 | ||||||||||||||||||||||||
| 46 |                 == 
 never executed:  return( (*__errno_location ()) == 2 ? 0 : -1); | 0 | ||||||||||||||||||||||||
| 47 |                    2
 never executed:  return( (*__errno_location ()) == 2 ? 0 : -1); | 0 | ||||||||||||||||||||||||
| 48 |                           ? 0 : -1); never executed:  return( (*__errno_location ()) == 2 ? 0 : -1); | 0 | ||||||||||||||||||||||||
| 49 |    break; never executed:  break; | 0 | ||||||||||||||||||||||||
| 50 |   case never executed:   1:case 1:never executed:  case 1: | 0 | ||||||||||||||||||||||||
| 51 | fd = open(path, | - | ||||||||||||||||||||||||
| 52 | 0100 | - | ||||||||||||||||||||||||
| 53 | | | - | ||||||||||||||||||||||||
| 54 | 0200 | - | ||||||||||||||||||||||||
| 55 | | | - | ||||||||||||||||||||||||
| 56 | 02 | - | ||||||||||||||||||||||||
| 57 | , | - | ||||||||||||||||||||||||
| 58 | 0400 | - | ||||||||||||||||||||||||
| 59 | | | - | ||||||||||||||||||||||||
| 60 | 0200 | - | ||||||||||||||||||||||||
| 61 | ); | - | ||||||||||||||||||||||||
| 62 |    if (fd != -1
  | 0 | ||||||||||||||||||||||||
| 63 |                   (*
 
  | 0 | ||||||||||||||||||||||||
| 64 |                         != 
  | 0 | ||||||||||||||||||||||||
| 65 |                            17
  | 0 | ||||||||||||||||||||||||
| 66 | ) | - | ||||||||||||||||||||||||
| 67 |     return never executed:  (fd);return(fd);never executed:  return(fd); | 0 | ||||||||||||||||||||||||
| 68 |    break; never executed:  break; | 0 | ||||||||||||||||||||||||
| 69 |   case never executed:   2:case 2:never executed:  case 2: | 0 | ||||||||||||||||||||||||
| 70 |    if (mkdir(path, 
  | 0 | ||||||||||||||||||||||||
| 71 |                   0400
  | 0 | ||||||||||||||||||||||||
| 72 |                          |
  | 0 | ||||||||||||||||||||||||
| 73 |                           0200
  | 0 | ||||||||||||||||||||||||
| 74 |                                  |
  | 0 | ||||||||||||||||||||||||
| 75 |                                   0100
  | 0 | ||||||||||||||||||||||||
| 76 |                                          ) == 0
  | 0 | ||||||||||||||||||||||||
| 77 |     return never executed:  (0);return(0);never executed:  return(0); | 0 | ||||||||||||||||||||||||
| 78 | if ( | - | ||||||||||||||||||||||||
| 79 |       (*
 
  | 0 | ||||||||||||||||||||||||
| 80 |             != 
  | 0 | ||||||||||||||||||||||||
| 81 |                17
  | 0 | ||||||||||||||||||||||||
| 82 | ) | - | ||||||||||||||||||||||||
| 83 |     return never executed:  (-1);return(-1);never executed:  return(-1); | 0 | ||||||||||||||||||||||||
| 84 |    break; never executed:  break; | 0 | ||||||||||||||||||||||||
| 85 | } | - | ||||||||||||||||||||||||
| 86 |  } never executed:   while (--end of block
 
  | 0 | ||||||||||||||||||||||||
| 87 | - | |||||||||||||||||||||||||
| 88 | - | |||||||||||||||||||||||||
| 89 | (*__errno_location ()) | - | ||||||||||||||||||||||||
| 90 | = | - | ||||||||||||||||||||||||
| 91 | 17 | - | ||||||||||||||||||||||||
| 92 | ; | - | ||||||||||||||||||||||||
| 93 |  return never executed:  (-1);return(-1);never executed:  return(-1); | 0 | ||||||||||||||||||||||||
| 94 | } | - | ||||||||||||||||||||||||
| 95 | int | - | ||||||||||||||||||||||||
| 96 | mkstemp(char *path) | - | ||||||||||||||||||||||||
| 97 | { | - | ||||||||||||||||||||||||
| 98 |  return never executed:  (mktemp_internal(path, 0, 1));return(mktemp_internal(path, 0, 1));never executed:  return(mktemp_internal(path, 0, 1)); | 0 | ||||||||||||||||||||||||
| 99 | } | - | ||||||||||||||||||||||||
| 100 | - | |||||||||||||||||||||||||
| 101 | int | - | ||||||||||||||||||||||||
| 102 | mkstemps(char *path, int slen) | - | ||||||||||||||||||||||||
| 103 | { | - | ||||||||||||||||||||||||
| 104 |  return never executed:  (mktemp_internal(path, slen, 1));return(mktemp_internal(path, slen, 1));never executed:  return(mktemp_internal(path, slen, 1)); | 0 | ||||||||||||||||||||||||
| 105 | } | - | ||||||||||||||||||||||||
| 106 | - | |||||||||||||||||||||||||
| 107 | char * | - | ||||||||||||||||||||||||
| 108 | mkdtemp(char *path) | - | ||||||||||||||||||||||||
| 109 | { | - | ||||||||||||||||||||||||
| 110 | int error; | - | ||||||||||||||||||||||||
| 111 | - | |||||||||||||||||||||||||
| 112 | error = mktemp_internal(path, 0, 2); | - | ||||||||||||||||||||||||
| 113 |  return never executed:  (errorreturn(error ? ((void *)0) : path);
 never executed:  return(error ? ((void *)0) : path); | 0 | ||||||||||||||||||||||||
| 114 |                ((void *)0)  never executed:  return(error ? ((void *)0) : path); | 0 | ||||||||||||||||||||||||
| 115 |                     : path); never executed:  return(error ? ((void *)0) : path); | 0 | ||||||||||||||||||||||||
| 116 | } | - | ||||||||||||||||||||||||
| Switch to Source code | Preprocessed file |