Kamil Dudka 0c0242
From c3fa3829e494c1875416058bb8d448a89f9e5e55 Mon Sep 17 00:00:00 2001
Kamil Dudka 0c0242
From: Kamil Dudka <kdudka@redhat.com>
Kamil Dudka 0c0242
Date: Wed, 22 Dec 2010 14:13:27 +0100
Kamil Dudka 0c0242
Subject: [PATCH] getfattr: return non-zero exit code on failure
Kamil Dudka 0c0242
MIME-Version: 1.0
Kamil Dudka 0c0242
Content-Type: text/plain; charset=UTF-8
Kamil Dudka 0c0242
Content-Transfer-Encoding: 8bit
Kamil Dudka 0c0242
Kamil Dudka 0c0242
reported by Jean-Pierre André at https://bugzilla.redhat.com/660619
Kamil Dudka 0c0242
---
Kamil Dudka 0c0242
 getfattr/getfattr.c |    7 ++++---
Kamil Dudka 0c0242
 test/attr.test      |    4 ++++
Kamil Dudka 0c0242
 2 files changed, 8 insertions(+), 3 deletions(-)
Kamil Dudka 0c0242
Kamil Dudka 0c0242
diff --git a/getfattr/getfattr.c b/getfattr/getfattr.c
Kamil Dudka 0c0242
index 7ced700..d8a7bc5 100644
Kamil Dudka 0c0242
--- a/getfattr/getfattr.c
Kamil Dudka 0c0242
+++ b/getfattr/getfattr.c
Kamil Dudka 0c0242
@@ -355,6 +355,7 @@ int do_print(const char *path, const struct stat *stat, int walk_flags,
Kamil Dudka 0c0242
 	     void *unused)
Kamil Dudka 0c0242
 {
Kamil Dudka 0c0242
 	int header_printed = 0;
Kamil Dudka 0c0242
+	int err = 0;
Kamil Dudka 0c0242
 
Kamil Dudka 0c0242
 	if (walk_flags & WALK_TREE_FAILED) {
Kamil Dudka 0c0242
 		fprintf(stderr, "%s: %s: %s\n", progname, xquote(path, "\n\r"),
Kamil Dudka 0c0242
@@ -363,13 +364,13 @@ int do_print(const char *path, const struct stat *stat, int walk_flags,
Kamil Dudka 0c0242
 	}
Kamil Dudka 0c0242
 
Kamil Dudka 0c0242
 	if (opt_name)
Kamil Dudka 0c0242
-		print_attribute(path, opt_name, &header_printed);
Kamil Dudka 0c0242
+		err = print_attribute(path, opt_name, &header_printed);
Kamil Dudka 0c0242
 	else
Kamil Dudka 0c0242
-		list_attributes(path, &header_printed);
Kamil Dudka 0c0242
+		err = list_attributes(path, &header_printed);
Kamil Dudka 0c0242
 
Kamil Dudka 0c0242
 	if (header_printed)
Kamil Dudka 0c0242
 		puts("");
Kamil Dudka 0c0242
-	return 0;
Kamil Dudka 0c0242
+	return err;
Kamil Dudka 0c0242
 }
Kamil Dudka 0c0242
 
Kamil Dudka 0c0242
 void help(void)
Kamil Dudka 0c0242
diff --git a/test/attr.test b/test/attr.test
Kamil Dudka 0c0242
index e8f134c..10f10d0 100644
Kamil Dudka 0c0242
--- a/test/attr.test
Kamil Dudka 0c0242
+++ b/test/attr.test
Kamil Dudka 0c0242
@@ -22,6 +22,10 @@ Try various valid and invalid names
Kamil Dudka 0c0242
 	> user.name
Kamil Dudka 0c0242
 	> 
Kamil Dudka 0c0242
 	
Kamil Dudka 0c0242
+	$ setfattr -x user.name f
Kamil Dudka 0c0242
+	$ sh -c 'getfattr -n user.name f && echo zero exit code'
Kamil Dudka 0c0242
+	> f: user.name: No such attribute
Kamil Dudka 0c0242
+	
Kamil Dudka 0c0242
 	$ setfattr -n user.n -v value f
Kamil Dudka 0c0242
 	$ rm f
Kamil Dudka 0c0242
 
Kamil Dudka 0c0242
-- 
Kamil Dudka 0c0242
1.7.3.3
Kamil Dudka 0c0242