1From 1422c24f7266b553c82100e3d18a10c55cd91063 Mon Sep 17 00:00:00 2001 2From: Chen Qi <Qi.Chen@windriver.com> 3Date: Thu, 17 Jul 2014 15:53:34 +0800 4Subject: [PATCH] commonio.c-fix-unexpected-open-failure-in-chroot-env 5 6Upstream-Status: Inappropriate [OE specific] 7 8commonio.c: fix unexpected open failure in chroot environment 9 10When using commands with '-R <newroot>' option in our pseudo environment, 11we would usually get the 'Pemission Denied' error. This patch serves as 12a workaround to this problem. 13 14Note that this patch doesn't change the logic in the code, it just expands 15the codes. 16 17Signed-off-by: Chen Qi <Qi.Chen@windriver.com> 18 19--- 20 lib/commonio.c | 16 ++++++++++++---- 21 1 file changed, 12 insertions(+), 4 deletions(-) 22 23diff --git a/lib/commonio.c b/lib/commonio.c 24index cef404b..66908fb 100644 25--- a/lib/commonio.c 26+++ b/lib/commonio.c 27@@ -646,10 +646,18 @@ int commonio_open (struct commonio_db *db, int mode) 28 db->cursor = NULL; 29 db->changed = false; 30 31- fd = open (db->filename, 32- (db->readonly ? O_RDONLY : O_RDWR) 33- | O_NOCTTY | O_NONBLOCK | O_NOFOLLOW); 34- saved_errno = errno; 35+ if (db->readonly) { 36+ fd = open (db->filename, 37+ (true ? O_RDONLY : O_RDWR) 38+ | O_NOCTTY | O_NONBLOCK | O_NOFOLLOW); 39+ saved_errno = errno; 40+ } else { 41+ fd = open (db->filename, 42+ (false ? O_RDONLY : O_RDWR) 43+ | O_NOCTTY | O_NONBLOCK | O_NOFOLLOW); 44+ saved_errno = errno; 45+ } 46+ 47 db->fp = NULL; 48 if (fd >= 0) { 49 #ifdef WITH_TCB 50