| File: | src/misc/getrlimit.c |
| Location: | line 20, column 29 |
| Description: | The left operand of '==' is a garbage value |
| 1 | #include <sys/resource.h> | |||
| 2 | #include <errno(*__errno_location()).h> | |||
| 3 | #include "syscall.h" | |||
| 4 | #include "libc.h" | |||
| 5 | ||||
| 6 | #define FIX(x)do{ if ((x)>=(~0ULL)) (x)=(~0ULL); }while(0) do{ if ((x)>=SYSCALL_RLIM_INFINITY(~0ULL)) (x)=RLIM_INFINITY(~0ULL); }while(0) | |||
| 7 | ||||
| 8 | int getrlimit(int resource, struct rlimit *rlim) | |||
| 9 | { | |||
| 10 | unsigned long k_rlim[2]; | |||
| 11 | int ret = syscall(SYS_prlimit64, 0, resource, 0, rlim)__syscall_ret(__syscall4(302,((long) (0)),((long) (resource)) ,((long) (0)),((long) (rlim)))); | |||
| 12 | if (!ret) { | |||
| ||||
| 13 | FIX(rlim->rlim_cur)do{ if ((rlim->rlim_cur)>=(~0ULL)) (rlim->rlim_cur)= (~0ULL); }while(0); | |||
| 14 | FIX(rlim->rlim_max)do{ if ((rlim->rlim_max)>=(~0ULL)) (rlim->rlim_max)= (~0ULL); }while(0); | |||
| 15 | } | |||
| 16 | if (!ret || errno(*__errno_location()) != ENOSYS38) | |||
| 17 | return ret; | |||
| 18 | if (syscall(SYS_getrlimit, resource, k_rlim)__syscall_ret(__syscall2(97,((long) (resource)),((long) (k_rlim )))) < 0) | |||
| 19 | return -1; | |||
| 20 | rlim->rlim_cur = k_rlim[0] == -1UL ? RLIM_INFINITY(~0ULL) : k_rlim[0]; | |||
| ||||
| 21 | rlim->rlim_max = k_rlim[1] == -1UL ? RLIM_INFINITY(~0ULL) : k_rlim[1]; | |||
| 22 | FIX(rlim->rlim_cur)do{ if ((rlim->rlim_cur)>=(~0ULL)) (rlim->rlim_cur)= (~0ULL); }while(0); | |||
| 23 | FIX(rlim->rlim_max)do{ if ((rlim->rlim_max)>=(~0ULL)) (rlim->rlim_max)= (~0ULL); }while(0); | |||
| 24 | return 0; | |||
| 25 | } | |||
| 26 | ||||
| 27 | LFS64(getrlimit)extern __typeof(getrlimit) getrlimit64 __attribute__((weak, alias ("getrlimit"))); |