forked from pool/cryptsetup
checked in
OBS-URL: https://build.opensuse.org/package/show/security/cryptsetup?expand=0&rev=25
This commit is contained in:
parent
2de58ef22e
commit
f813529d6e
@ -1,42 +1,13 @@
|
|||||||
From 6b92a27195e21e9d96ce2f324c3da593a01a7ae0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ludwig Nussel <ludwig.nussel@suse.de>
|
|
||||||
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
|
Index: cryptsetup-1.0.7/lib/utils.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- cryptsetup-1.0.7.orig/lib/utils.c
|
--- cryptsetup-1.0.7.orig/lib/utils.c
|
||||||
+++ cryptsetup-1.0.7/lib/utils.c
|
+++ cryptsetup-1.0.7/lib/utils.c
|
||||||
@@ -361,6 +361,7 @@ int get_key(char *prompt, char **key, un
|
@@ -452,6 +452,8 @@ 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
|
|
||||||
}
|
}
|
||||||
if(key_file)
|
if(key_file)
|
||||||
close(fd);
|
close(fd);
|
||||||
+ /* Fail if piped input dies reading nothing */
|
+ if(!i) // we didn't read anything, user pressed ^D?
|
||||||
+ if(!i && !regular_file) {
|
|
||||||
+ goto out_err;
|
+ goto out_err;
|
||||||
+ }
|
|
||||||
pass[i] = 0;
|
pass[i] = 0;
|
||||||
*key = pass;
|
*key = pass;
|
||||||
*passLen = i;
|
*passLen = i;
|
||||||
|
@ -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
|
Fri Sep 25 12:42:23 UTC 2009 - lnussel@suse.de
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user