Improve code readability by avoiding assignments inside if()
* desc.c (decode_select): Move assignment out of if() condition. * file.c (sprinttime): Likewise. (sys_getdirentries): Likewise. * io.c (sys_ioctl): Likewise. * strace.c (test_ptrace_setoptions_followfork): Likewise. (main): Likewise. (proc_open): Likewise. (detach): Likewise. (proc_poll): Likewise. (trace): Likewise. * syscall.c (qualify): Likewise. (sys_indir): Likewise. * test/procpollable.c (main): Likewise. * test/sfd.c (main): Likewise. * time.c (printtv_bitness): Likewise. (sprinttv): Likewise. (print_timespec): Likewise. (void sprint_timespec): Likewise. (printitv_bitness): Likewise. * util.c (dumpstr): Likewise. (umovestr): Likewise. (fixvfork): Likewise. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
This commit is contained in:
parent
6b6ed5d669
commit
5d64581e10
3
desc.c
3
desc.c
@ -538,7 +538,8 @@ decode_select(struct tcb *tcp, long *args, enum bitness_t bitness)
|
||||
if (syserror(tcp))
|
||||
return 0;
|
||||
|
||||
if ((nfds = tcp->u_rval) == 0) {
|
||||
nfds = tcp->u_rval;
|
||||
if (nfds == 0) {
|
||||
tcp->auxstr = "Timeout";
|
||||
return RVAL_STR;
|
||||
}
|
||||
|
6
file.c
6
file.c
@ -738,7 +738,8 @@ sprinttime(time_t t)
|
||||
strcpy(buf, "0");
|
||||
return buf;
|
||||
}
|
||||
if ((tmp = localtime(&t)))
|
||||
tmp = localtime(&t);
|
||||
if (tmp)
|
||||
snprintf(buf, sizeof buf, "%02d/%02d/%02d-%02d:%02d:%02d",
|
||||
tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
|
||||
tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
|
||||
@ -2590,7 +2591,8 @@ sys_getdirentries(struct tcb *tcp)
|
||||
return 0;
|
||||
}
|
||||
len = tcp->u_rval;
|
||||
if ((buf = malloc(len)) == NULL) {
|
||||
buf = malloc(len);
|
||||
if (buf == NULL) {
|
||||
tprintf("%#lx, %lu, %#lx", tcp->u_arg[1], tcp->u_arg[2], tcp->u_arg[3]);
|
||||
fprintf(stderr, "out of memory\n");
|
||||
return 0;
|
||||
|
4
io.c
4
io.c
@ -434,8 +434,8 @@ sys_ioctl(struct tcb *tcp)
|
||||
ioctl_decode(tcp, tcp->u_arg[1], tcp->u_arg[2]);
|
||||
}
|
||||
else {
|
||||
int ret;
|
||||
if (!(ret = ioctl_decode(tcp, tcp->u_arg[1], tcp->u_arg[2])))
|
||||
int ret = ioctl_decode(tcp, tcp->u_arg[1], tcp->u_arg[2]);
|
||||
if (!ret)
|
||||
tprintf(", %#lx", tcp->u_arg[2]);
|
||||
else
|
||||
return ret - 1;
|
||||
|
44
strace.c
44
strace.c
@ -744,9 +744,10 @@ test_ptrace_setoptions_followfork(void)
|
||||
PTRACE_O_TRACEFORK |
|
||||
PTRACE_O_TRACEVFORK;
|
||||
|
||||
if ((pid = fork()) < 0)
|
||||
pid = fork();
|
||||
if (pid < 0)
|
||||
perror_msg_and_die("fork");
|
||||
else if (pid == 0) {
|
||||
if (pid == 0) {
|
||||
pid = getpid();
|
||||
if (ptrace(PTRACE_TRACEME, 0, 0, 0) < 0)
|
||||
perror_msg_and_die("%s: PTRACE_TRACEME doesn't work",
|
||||
@ -1043,7 +1044,8 @@ main(int argc, char *argv[])
|
||||
set_overhead(atoi(optarg));
|
||||
break;
|
||||
case 'p':
|
||||
if ((pid = atoi(optarg)) <= 0) {
|
||||
pid = atoi(optarg);
|
||||
if (pid <= 0) {
|
||||
error_msg("Invalid process id: '%s'", optarg);
|
||||
break;
|
||||
}
|
||||
@ -1105,7 +1107,8 @@ main(int argc, char *argv[])
|
||||
if (getuid() != 0 || geteuid() != 0) {
|
||||
error_msg_and_die("You must be root to use the -u option");
|
||||
}
|
||||
if ((pent = getpwnam(username)) == NULL) {
|
||||
pent = getpwnam(username);
|
||||
if (pent == NULL) {
|
||||
error_msg_and_die("Cannot find user '%s'", username);
|
||||
}
|
||||
run_uid = pent->pw_uid;
|
||||
@ -1284,19 +1287,22 @@ proc_open(struct tcb *tcp, int attaching)
|
||||
#ifdef HAVE_MP_PROCFS
|
||||
/* Open the process pseudo-files in /proc. */
|
||||
sprintf(proc, "/proc/%d/ctl", tcp->pid);
|
||||
if ((tcp->pfd = open(proc, O_WRONLY|O_EXCL)) < 0) {
|
||||
tcp->pfd = open(proc, O_WRONLY|O_EXCL);
|
||||
if (tcp->pfd < 0) {
|
||||
perror("strace: open(\"/proc/...\", ...)");
|
||||
return -1;
|
||||
}
|
||||
set_cloexec_flag(tcp->pfd);
|
||||
sprintf(proc, "/proc/%d/status", tcp->pid);
|
||||
if ((tcp->pfd_stat = open(proc, O_RDONLY|O_EXCL)) < 0) {
|
||||
tcp->pfd_stat = open(proc, O_RDONLY|O_EXCL);
|
||||
if (tcp->pfd_stat < 0) {
|
||||
perror("strace: open(\"/proc/...\", ...)");
|
||||
return -1;
|
||||
}
|
||||
set_cloexec_flag(tcp->pfd_stat);
|
||||
sprintf(proc, "/proc/%d/as", tcp->pid);
|
||||
if ((tcp->pfd_as = open(proc, O_RDONLY|O_EXCL)) < 0) {
|
||||
tcp->pfd_as = open(proc, O_RDONLY|O_EXCL);
|
||||
if (tcp->pfd_as < 0) {
|
||||
perror("strace: open(\"/proc/...\", ...)");
|
||||
return -1;
|
||||
}
|
||||
@ -1318,13 +1324,15 @@ proc_open(struct tcb *tcp, int attaching)
|
||||
#endif
|
||||
#ifdef FREEBSD
|
||||
sprintf(proc, "/proc/%d/regs", tcp->pid);
|
||||
if ((tcp->pfd_reg = open(proc, O_RDONLY)) < 0) {
|
||||
tcp->pfd_reg = open(proc, O_RDONLY);
|
||||
if (tcp->pfd_reg < 0) {
|
||||
perror("strace: open(\"/proc/.../regs\", ...)");
|
||||
return -1;
|
||||
}
|
||||
if (cflag) {
|
||||
sprintf(proc, "/proc/%d/status", tcp->pid);
|
||||
if ((tcp->pfd_status = open(proc, O_RDONLY)) < 0) {
|
||||
tcp->pfd_status = open(proc, O_RDONLY);
|
||||
if (tcp->pfd_status < 0) {
|
||||
perror("strace: open(\"/proc/.../status\", ...)");
|
||||
return -1;
|
||||
}
|
||||
@ -1662,7 +1670,8 @@ detach(struct tcb *tcp, int sig)
|
||||
* detached process would be left stopped (process state T).
|
||||
*/
|
||||
catch_sigstop = (tcp->flags & TCB_STARTUP);
|
||||
if ((error = ptrace(PTRACE_DETACH, tcp->pid, (char *) 1, sig)) == 0) {
|
||||
error = ptrace(PTRACE_DETACH, tcp->pid, (char *) 1, sig);
|
||||
if (error == 0) {
|
||||
/* On a clear day, you can see forever. */
|
||||
}
|
||||
else if (errno != ESRCH) {
|
||||
@ -1887,7 +1896,8 @@ proc_poll(struct pollfd *pollv, int nfds, int timeout)
|
||||
int n;
|
||||
struct proc_pollfd pollinfo;
|
||||
|
||||
if ((n = read(proc_poll_pipe[0], &pollinfo, sizeof(pollinfo))) < 0)
|
||||
n = read(proc_poll_pipe[0], &pollinfo, sizeof(pollinfo));
|
||||
if (n < 0)
|
||||
return n;
|
||||
if (n != sizeof(struct proc_pollfd)) {
|
||||
error_msg_and_die("panic: short read: %d", n);
|
||||
@ -2072,7 +2082,8 @@ trace(void)
|
||||
in_syscall = NULL;
|
||||
pv.fd = tcp->pfd;
|
||||
pv.events = POLLWANT;
|
||||
if ((what = poll(&pv, 1, 1)) < 0) {
|
||||
what = poll(&pv, 1, 1);
|
||||
if (what < 0) {
|
||||
if (interrupted)
|
||||
return 0;
|
||||
continue;
|
||||
@ -2102,7 +2113,8 @@ trace(void)
|
||||
}
|
||||
|
||||
/* Look up `pfd' in our table. */
|
||||
if ((tcp = pfd2tcb(pfd)) == NULL) {
|
||||
tcp = pfd2tcb(pfd);
|
||||
if (tcp == NULL) {
|
||||
error_msg_and_die("unknown pfd: %u", pfd);
|
||||
}
|
||||
#ifdef POLL_HACK
|
||||
@ -2175,7 +2187,8 @@ trace(void)
|
||||
char buf[1024];
|
||||
int len;
|
||||
|
||||
if ((len = pread(tcp->pfd_status, buf, sizeof(buf) - 1, 0)) > 0) {
|
||||
len = pread(tcp->pfd_status, buf, sizeof(buf) - 1, 0);
|
||||
if (len > 0) {
|
||||
buf[len] = '\0';
|
||||
sscanf(buf,
|
||||
"%*s %*d %*d %*d %*d %*d,%*d %*s %*d,%*d %*d,%*d %ld,%ld",
|
||||
@ -2374,7 +2387,8 @@ trace()
|
||||
}
|
||||
|
||||
/* Look up `pid' in our table. */
|
||||
if ((tcp = pid2tcb(pid)) == NULL) {
|
||||
tcp = pid2tcb(pid);
|
||||
if (tcp == NULL) {
|
||||
#ifdef LINUX
|
||||
if (followfork) {
|
||||
/* This is needed to go with the CLONE_PTRACE
|
||||
|
@ -470,7 +470,8 @@ qualify(const char *s)
|
||||
for (i = 0; i < MAX_QUALS; i++) {
|
||||
qualify_one(i, opt->bitflag, !not, -1);
|
||||
}
|
||||
if (!(copy = strdup(s))) {
|
||||
copy = strdup(s);
|
||||
if (!copy) {
|
||||
fprintf(stderr, "out of memory\n");
|
||||
exit(1);
|
||||
}
|
||||
@ -2775,7 +2776,8 @@ sys_indir(struct tcb *tcp)
|
||||
int i, scno, nargs;
|
||||
|
||||
if (entering(tcp)) {
|
||||
if ((scno = tcp->u_arg[0]) > nsyscalls) {
|
||||
scno = tcp->u_arg[0];
|
||||
if (scno > nsyscalls) {
|
||||
fprintf(stderr, "Bogus syscall: %u\n", scno);
|
||||
return 0;
|
||||
}
|
||||
|
@ -12,14 +12,16 @@ int main(int argc, char *argv[])
|
||||
FILE *pfp;
|
||||
struct pollfd pfd;
|
||||
|
||||
if ((pid = fork()) == 0) {
|
||||
pid = fork();
|
||||
if (pid == 0) {
|
||||
pause();
|
||||
exit(0);
|
||||
}
|
||||
|
||||
sprintf(proc, "/proc/%d", pid);
|
||||
|
||||
if ((pfp = fopen(proc, "r+")) == NULL)
|
||||
pfp = fopen(proc, "r+");
|
||||
if (pfp == NULL)
|
||||
goto fail;
|
||||
|
||||
if (ioctl(fileno(pfp), PIOCSTOP, NULL) < 0)
|
||||
|
@ -13,7 +13,8 @@ int main(int argc, char *argv[])
|
||||
|
||||
sprintf(sname, "/proc/%d/stat", pid);
|
||||
|
||||
if ((sfd = open(sname, O_RDONLY)) == -1) {
|
||||
sfd = open(sname, O_RDONLY);
|
||||
if (sfd == -1) {
|
||||
perror(sname);
|
||||
return 1;
|
||||
}
|
||||
|
30
time.c
30
time.c
@ -81,7 +81,8 @@ printtv_bitness(struct tcb *tcp, long addr, enum bitness_t bitness, int special)
|
||||
{
|
||||
struct timeval32 tv;
|
||||
|
||||
if ((rc = umove(tcp, addr, &tv)) >= 0) {
|
||||
rc = umove(tcp, addr, &tv);
|
||||
if (rc >= 0) {
|
||||
if (special && tv.tv_sec == 0 &&
|
||||
tv.tv_usec == UTIME_NOW)
|
||||
tprintf("UTIME_NOW");
|
||||
@ -94,7 +95,8 @@ printtv_bitness(struct tcb *tcp, long addr, enum bitness_t bitness, int special)
|
||||
} else {
|
||||
struct timeval tv;
|
||||
|
||||
if ((rc = umove(tcp, addr, &tv)) >= 0) {
|
||||
rc = umove(tcp, addr, &tv);
|
||||
if (rc >= 0) {
|
||||
if (special && tv.tv_sec == 0 &&
|
||||
tv.tv_usec == UTIME_NOW)
|
||||
tprintf("UTIME_NOW");
|
||||
@ -128,13 +130,15 @@ sprinttv(struct tcb *tcp, long addr, enum bitness_t bitness, char *buf)
|
||||
{
|
||||
struct timeval32 tv;
|
||||
|
||||
if ((rc = umove(tcp, addr, &tv)) >= 0)
|
||||
rc = umove(tcp, addr, &tv);
|
||||
if (rc >= 0)
|
||||
sprintf(buf, "{%u, %u}",
|
||||
tv.tv_sec, tv.tv_usec);
|
||||
} else {
|
||||
struct timeval tv;
|
||||
|
||||
if ((rc = umove(tcp, addr, &tv)) >= 0)
|
||||
rc = umove(tcp, addr, &tv);
|
||||
if (rc >= 0)
|
||||
sprintf(buf, "{%lu, %lu}",
|
||||
(unsigned long) tv.tv_sec,
|
||||
(unsigned long) tv.tv_usec);
|
||||
@ -157,7 +161,8 @@ void print_timespec(struct tcb *tcp, long addr)
|
||||
if (personality_wordsize[current_personality] == 4) {
|
||||
struct timeval32 tv;
|
||||
|
||||
if ((rc = umove(tcp, addr, &tv)) >= 0)
|
||||
rc = umove(tcp, addr, &tv);
|
||||
if (rc >= 0)
|
||||
tprintf("{%u, %u}",
|
||||
tv.tv_sec, tv.tv_usec);
|
||||
} else
|
||||
@ -165,7 +170,8 @@ void print_timespec(struct tcb *tcp, long addr)
|
||||
{
|
||||
struct timespec ts;
|
||||
|
||||
if ((rc = umove(tcp, addr, &ts)) >= 0)
|
||||
rc = umove(tcp, addr, &ts);
|
||||
if (rc >= 0)
|
||||
tprintf("{%lu, %lu}",
|
||||
(unsigned long) ts.tv_sec,
|
||||
(unsigned long) ts.tv_nsec);
|
||||
@ -188,7 +194,8 @@ void sprint_timespec(char *buf, struct tcb *tcp, long addr)
|
||||
if (personality_wordsize[current_personality] == 4) {
|
||||
struct timeval32 tv;
|
||||
|
||||
if ((rc = umove(tcp, addr, &tv)) >= 0)
|
||||
rc = umove(tcp, addr, &tv);
|
||||
if (rc >= 0)
|
||||
sprintf(buf, "{%u, %u}",
|
||||
tv.tv_sec, tv.tv_usec);
|
||||
} else
|
||||
@ -196,7 +203,8 @@ void sprint_timespec(char *buf, struct tcb *tcp, long addr)
|
||||
{
|
||||
struct timespec ts;
|
||||
|
||||
if ((rc = umove(tcp, addr, &ts)) >= 0)
|
||||
rc = umove(tcp, addr, &ts);
|
||||
if (rc >= 0)
|
||||
sprintf(buf, "{%lu, %lu}",
|
||||
(unsigned long) ts.tv_sec,
|
||||
(unsigned long) ts.tv_nsec);
|
||||
@ -349,7 +357,8 @@ printitv_bitness(struct tcb *tcp, long addr, enum bitness_t bitness)
|
||||
struct timeval32 it_interval, it_value;
|
||||
} itv;
|
||||
|
||||
if ((rc = umove(tcp, addr, &itv)) >= 0) {
|
||||
rc = umove(tcp, addr, &itv);
|
||||
if (rc >= 0) {
|
||||
tprintf("{it_interval=");
|
||||
tprint_timeval32(tcp, &itv.it_interval);
|
||||
tprintf(", it_value=");
|
||||
@ -359,7 +368,8 @@ printitv_bitness(struct tcb *tcp, long addr, enum bitness_t bitness)
|
||||
} else {
|
||||
struct itimerval itv;
|
||||
|
||||
if ((rc = umove(tcp, addr, &itv)) >= 0) {
|
||||
rc = umove(tcp, addr, &itv);
|
||||
if (rc >= 0) {
|
||||
tprintf("{it_interval=");
|
||||
tprint_timeval(tcp, &itv.it_interval);
|
||||
tprintf(", it_value=");
|
||||
|
18
util.c
18
util.c
@ -687,9 +687,9 @@ dumpstr(struct tcb *tcp, long addr, int len)
|
||||
int i, j;
|
||||
|
||||
if (strsize < len) {
|
||||
if (str)
|
||||
free(str);
|
||||
if ((str = malloc(len)) == NULL) {
|
||||
free(str);
|
||||
str = malloc(len);
|
||||
if (str == NULL) {
|
||||
fprintf(stderr, "out of memory\n");
|
||||
return;
|
||||
}
|
||||
@ -848,10 +848,13 @@ umovestr(struct tcb *tcp, long addr, int len, char *laddr)
|
||||
lseek(fd, addr, SEEK_SET);
|
||||
|
||||
while (left) {
|
||||
if (move > left) move = left;
|
||||
if ((move = read(fd, laddr, move)) <= 0)
|
||||
if (move > left)
|
||||
move = left;
|
||||
move = read(fd, laddr, move);
|
||||
if (move <= 0)
|
||||
return left != len ? 0 : -1;
|
||||
if (memchr(laddr, 0, move)) break;
|
||||
if (memchr(laddr, 0, move))
|
||||
break;
|
||||
left -= move;
|
||||
laddr += move;
|
||||
addr += move;
|
||||
@ -1703,7 +1706,8 @@ fixvfork(struct tcb *tcp)
|
||||
fprintf(stderr, "Cannot read link_dynamic_2\n");
|
||||
return -1;
|
||||
}
|
||||
if ((strtab = malloc((unsigned)ld.ld_symb_size)) == NULL) {
|
||||
strtab = malloc((unsigned)ld.ld_symb_size);
|
||||
if (strtab == NULL) {
|
||||
fprintf(stderr, "out of memory\n");
|
||||
return -1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user