| Line | Source | Count |
| 1 | | - |
| 2 | | - |
| 3 | | - |
| 4 | int | - |
| 5 | getugroups (int maxcount, gid_t *grouplist, char const *username, | - |
| 6 | gid_t gid) | - |
| 7 | { | - |
| 8 | int count = 0; | - |
| 9 | | - |
| 10 | if (gid != (gid_t) -1| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 11 | { | - |
| 12 | if (maxcount != 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 13 | grouplist[count] = gid; never executed: grouplist[count] = gid; | 0 |
| 14 | ++count; | - |
| 15 | } never executed: end of block | 0 |
| 16 | | - |
| 17 | setgrent (); | - |
| 18 | while (1) | - |
| 19 | { | - |
| 20 | char **cp; | - |
| 21 | struct group *grp; | - |
| 22 | | - |
| 23 | | - |
| 24 | (*__errno_location ()) | - |
| 25 | = 0; | - |
| 26 | grp = getgrent (); | - |
| 27 | if (grp == | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 28 | ((void *)0)| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 29 | ) | - |
| 30 | break; never executed: break; | 0 |
| 31 | | - |
| 32 | for (cp = grp->gr_mem; *| TRUE | never evaluated | | FALSE | never evaluated |
cp| TRUE | never evaluated | | FALSE | never evaluated |
; ++cp) | 0 |
| 33 | { | - |
| 34 | int n; | - |
| 35 | | - |
| 36 | if ( ! (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 37 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 38 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 39 | ) && __builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 40 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 41 | ) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 42 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 43 | ), __s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 44 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 45 | ), (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 46 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 47 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 48 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 49 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 50 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 51 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 52 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 53 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 54 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 55 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 56 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 57 | ) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 58 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 59 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 60 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 61 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 62 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 63 | ) == 1) && (__s1_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 64 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 65 | ), __s1_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 66 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 67 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 68 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 69 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 70 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 71 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 72 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 73 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 74 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 75 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 76 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 77 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 78 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 79 | ))[0] - __s2[0]); if (__s1_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 80 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 81 | ))[1] - __s2[1]); if (__s1_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 82 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 83 | ))[2] - __s2[2]); if (__s1_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( username ))[3] - __s2[3]); | 0 |
| 84 | username| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( username ))[3] - __s2[3]); | 0 |
| 85 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 86 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 87 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 88 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 89 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 90 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 91 | ) == 1) && (__s2_len = __builtin_strlen (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 92 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 93 | ), __s2_len < 4) ? (__builtin_constant_p (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 94 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 95 | ) && ((size_t)(const void *)((| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 96 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 97 | ) + 1) - (size_t)(const void *)(| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 98 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 99 | ) == 1) ? __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 100 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 101 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 102 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 103 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 104 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 105 | ); int __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 106 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 107 | ))[0] - __s2[0]); if (__s2_len > 0| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 108 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 109 | ))[1] - __s2[1]); if (__s2_len > 1| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 110 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 111 | ))[2] - __s2[2]); if (__s2_len > 2| TRUE | never evaluated | | FALSE | never evaluated |
&& __result == 0| TRUE | never evaluated | | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( *cp ))[3] - __s2[3]); | 0 |
| 112 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( *cp ))[3] - __s2[3]); | 0 |
| 113 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 114 | username| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 115 | , | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 116 | *cp| TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 117 | )))); }) | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 118 | == 0)| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 119 | continue; never executed: continue; | 0 |
| 120 | | - |
| 121 | | - |
| 122 | for (n = 0; n < count| TRUE | never evaluated | | FALSE | never evaluated |
; ++n) | 0 |
| 123 | if (grouplist| TRUE | never evaluated | | FALSE | never evaluated |
&& grouplist[n] == grp->gr_gid| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 124 | break; never executed: break; | 0 |
| 125 | | - |
| 126 | | - |
| 127 | if (n == count| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 128 | { | - |
| 129 | if (maxcount != 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 130 | { | - |
| 131 | if (count >= maxcount| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 132 | goto never executed: goto done; done;never executed: goto done; | 0 |
| 133 | grouplist[count] = grp->gr_gid; | - |
| 134 | } never executed: end of block | 0 |
| 135 | if (count == 0x7fffffff| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 136 | { | - |
| 137 | | - |
| 138 | (*__errno_location ()) | - |
| 139 | = | - |
| 140 | 75 | - |
| 141 | ; | - |
| 142 | goto never executed: goto done; done;never executed: goto done; | 0 |
| 143 | } | - |
| 144 | count++; | - |
| 145 | } never executed: end of block | 0 |
| 146 | } never executed: end of block | 0 |
| 147 | } never executed: end of block | 0 |
| 148 | | - |
| 149 | if ( | - |
| 150 | (*| TRUE | never evaluated | | FALSE | never evaluated |
__errno_location ()) | TRUE | never evaluated | | FALSE | never evaluated |
| 0 |
| 151 | != 0| TRUE | never evaluated | | FALSE | never evaluated |
) | 0 |
| 152 | count = -1; never executed: count = -1; | 0 |
| 153 | | - |
| 154 | done: code before this statement never executed: done: | 0 |
| 155 | { | - |
| 156 | int saved_errno = | - |
| 157 | (*__errno_location ()) | - |
| 158 | ; | - |
| 159 | endgrent (); | - |
| 160 | | - |
| 161 | (*__errno_location ()) | - |
| 162 | = saved_errno; | - |
| 163 | } | - |
| 164 | | - |
| 165 | return never executed: return count; count;never executed: return count; | 0 |
| 166 | } | - |
| | |