[Lsb-messages] /var/www/bzr/lsb/devel/runtime-test r1288: Better error reporting in vsrt_create_exec_file() (bug 3568).
Jeff Licquia
licquia at linuxfoundation.org
Mon Aug 12 20:06:44 UTC 2013
------------------------------------------------------------
revno: 1288
committer: Jeff Licquia <licquia at linuxfoundation.org>
branch nick: runtime-test
timestamp: Mon 2013-08-12 16:06:44 -0400
message:
Better error reporting in vsrt_create_exec_file() (bug 3568).
modified:
modules/lsb-os/SRC/common/vsrtlib/mkmmap.c
-------------- next part --------------
=== modified file 'modules/lsb-os/SRC/common/vsrtlib/mkmmap.c'
--- a/modules/lsb-os/SRC/common/vsrtlib/mkmmap.c 2013-08-05 21:27:18 +0000
+++ b/modules/lsb-os/SRC/common/vsrtlib/mkmmap.c 2013-08-12 20:06:44 +0000
@@ -560,7 +560,7 @@
{
int fd;
char *addr, *buf;
- int size, success;
+ int size, success, actual;
inp->fd = -1;
@@ -596,7 +596,8 @@
errno = success = 0;
while (!success)
{
- if (write(fd, (void*)addr, (size_t)(size*vsrt_pgsz)) != (size*vsrt_pgsz)) {
+ actual = write(fd, (void*)addr, (size_t)(size*vsrt_pgsz));
+ if (actual != (size*vsrt_pgsz)) {
if ((errno != 0) && (size > 1)) {
if (size == 3) {
addr += vsrt_pgsz;
@@ -605,6 +606,12 @@
else if (size == 2)
size--;
}
+ else if (errno == 0) {
+ in_rpt("vsrt_create_exec_file: write() did not write expected number of bytes");
+ in_rpt(" expected: %d (size == %d), actual: %d", size*vsrt_pgsz, size, actual);
+ xx_rpt(FAILURE);
+ return(-1);
+ }
else {
in_rpt("vsrt_create_exec_file: write() failed, errno = %d (%s)", errno, errname(errno));
xx_rpt(FAILURE);
More information about the lsb-messages
mailing list