diff --git a/cryptsetup-1.0.7-eofpw.diff b/cryptsetup-1.0.7-eofpw.diff index 36ce24e..6914ea7 100644 --- a/cryptsetup-1.0.7-eofpw.diff +++ b/cryptsetup-1.0.7-eofpw.diff @@ -1,42 +1,13 @@ -From 6b92a27195e21e9d96ce2f324c3da593a01a7ae0 Mon Sep 17 00:00:00 2001 -From: Ludwig Nussel -Date: Tue, 29 Sep 2009 11:09:31 +0200 -Subject: [PATCH] Fail if piped input is broken. - ---- - ChangeLog | 1 + - lib/utils.c | 13 ++++++++++--- - 2 files changed, 11 insertions(+), 3 deletions(-) - Index: cryptsetup-1.0.7/lib/utils.c =================================================================== --- cryptsetup-1.0.7.orig/lib/utils.c +++ cryptsetup-1.0.7/lib/utils.c -@@ -361,6 +361,7 @@ int get_key(char *prompt, char **key, un - char *pass = NULL; - int newline_stop; - int read_horizon; -+ int regular_file = 0; - - if(key_file && !strcmp(key_file, "-")) { - /* Allow binary reading from stdin */ -@@ -435,6 +436,8 @@ int get_key(char *prompt, char **key, un - // goto out_err; - fprintf(stderr,"Warning: exhausting read requested, but key file is not a regular file, function might never return.\n"); - } -+ else -+ regular_file = 1; - } - buflen = 0; - for(i = 0; read_horizon == 0 || i < read_horizon; i++) { -@@ -452,6 +455,10 @@ int get_key(char *prompt, char **key, un +@@ -452,6 +452,8 @@ int get_key(char *prompt, char **key, un } if(key_file) close(fd); -+ /* Fail if piped input dies reading nothing */ -+ if(!i && !regular_file) { ++ if(!i) // we didn't read anything, user pressed ^D? + goto out_err; -+ } pass[i] = 0; *key = pass; *passLen = i; diff --git a/cryptsetup.changes b/cryptsetup.changes index 2a8a275..db7fa67 100644 --- a/cryptsetup.changes +++ b/cryptsetup.changes @@ -1,8 +1,3 @@ -------------------------------------------------------------------- -Tue Sep 29 11:25:58 UTC 2009 - lnussel@suse.de - -- replace patch that quits on EOF with upstream version - ------------------------------------------------------------------- Fri Sep 25 12:42:23 UTC 2009 - lnussel@suse.de