- replace patch that quits on EOF with upstream version

OBS-URL: https://build.opensuse.org/package/show/security/cryptsetup?expand=0&rev=24
This commit is contained in:
Ludwig Nussel 2009-09-30 07:14:00 +00:00 committed by Git OBS Bridge
parent 3944689501
commit 2de58ef22e
2 changed files with 36 additions and 2 deletions

View File

@ -1,13 +1,42 @@
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
===================================================================
--- cryptsetup-1.0.7.orig/lib/utils.c
+++ cryptsetup-1.0.7/lib/utils.c
@@ -452,6 +452,8 @@ int get_key(char *prompt, char **key, un
@@ -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
}
if(key_file)
close(fd);
+ if(!i) // we didn't read anything, user pressed ^D?
+ /* Fail if piped input dies reading nothing */
+ if(!i && !regular_file) {
+ goto out_err;
+ }
pass[i] = 0;
*key = pass;
*passLen = i;

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
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