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:
Denys Vlasenko 2011-08-20 12:48:18 +02:00
parent 6b6ed5d669
commit 5d64581e10
9 changed files with 78 additions and 42 deletions

3
desc.c
View File

@ -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
View File

@ -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
View File

@ -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;

View File

@ -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

View File

@ -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;
}

View File

@ -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)

View File

@ -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
View File

@ -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
View File

@ -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;
}