Fix SEGV in lseek

I found hard way why the code was using "_whence" name.

* file.c: Rename whence[] to whence_codes[].
(sys_lseek): Fix printxval() to use whence_codes[].
(sys_lseek32): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2013-02-17 12:47:44 +01:00
parent 386b871b0a
commit 782d90f918

10
file.c
View File

@ -516,7 +516,7 @@ sys_umask(struct tcb *tcp)
return RVAL_OCTAL;
}
static const struct xlat whence[] = {
static const struct xlat whence_codes[] = {
{ SEEK_SET, "SEEK_SET" },
{ SEEK_CUR, "SEEK_CUR" },
{ SEEK_END, "SEEK_END" },
@ -544,7 +544,7 @@ sys_lseek(struct tcb *tcp)
tprintf(", %llu, ", offset);
else
tprintf(", %lld, ", offset);
printxval(whence, whence, "SEEK_???");
printxval(whence_codes, whence, "SEEK_???");
}
return RVAL_LUDECIMAL;
}
@ -564,7 +564,7 @@ sys_lseek32(struct tcb *tcp)
tprintf(", %lu, ", offset);
else
tprintf(", %ld, ", offset);
printxval(whence, whence, "SEEK_???");
printxval(whence_codes, whence, "SEEK_???");
}
return RVAL_UDECIMAL;
}
@ -584,7 +584,7 @@ sys_lseek(struct tcb *tcp)
tprintf(", %lu, ", offset);
else
tprintf(", %ld, ", offset);
printxval(whence, whence, "SEEK_???");
printxval(whence_codes, whence, "SEEK_???");
}
return RVAL_UDECIMAL;
}
@ -622,7 +622,7 @@ sys_llseek(struct tcb *tcp)
tprintf("%#lx, ", tcp->u_arg[3]);
else
tprintf("[%llu], ", off);
printxval(whence, tcp->u_arg[4], "SEEK_???");
printxval(whence_codes, tcp->u_arg[4], "SEEK_???");
}
return 0;
}