add error checks to initramfs
PATCH 1/1 add error checks to initramfs
On a system with low memory extracting the initramfs may fail. If this happens the user gets "Failed to execute /init" instead of an initramfs error.
Check return value of sys_write and call error() when the write was incomplete or failed.
Signed-off-by David Engraf <[email protected]>
init/initramfs.c +4 -2
@@ -346,7 +346,8 @@ static int __init do_name(void)static int __init do_copy (void ) {if (count >= body_len) { -sys_write (wfd, victim, body_len); +if (sys_write (wfd, victim, body_len) != body_len) +error ("write error" );sys_close (wfd);do_utime (vcollected, mtime);kfree (vcollected);
@@ -354,7 +355,8 @@ static int __init do_copy(void) state = SkipIt;return 0 ; }else { -sys_write (wfd, victim, count); +if (sys_write (wfd, victim, count) != count) +error ("write error" ); body_len -= count;eat (count);return 1 ;