Bug Summary

File:src/misc/getrlimit.c
Location:line 20, column 29
Description:The left operand of '==' is a garbage value

Annotated Source Code

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
8int 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(369,((long) (0)),((long) (resource))
,((long) (0)),((long) (rlim))))
;
12 if (!ret) {
1
Assuming 'ret' is not equal to 0
2
Taking false branch
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)
3
Taking false branch
17 return ret;
18 if (syscall(SYS_getrlimit, resource, k_rlim)__syscall_ret(__syscall2(191,((long) (resource)),((long) (k_rlim
))))
< 0)
4
Taking false branch
19 return -1;
20 rlim->rlim_cur = k_rlim[0] == -1UL ? RLIM_INFINITY(~0ULL) : k_rlim[0];
5
The left operand of '==' is a garbage value
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
27LFS64(getrlimit)extern __typeof(getrlimit) getrlimit64 __attribute__((weak, alias
("getrlimit")))
;