linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 3/3] e4defrag: avoid unsuccessful return in non-privileged user
@ 2009-09-30  7:22 Kazuya Mio
  2009-09-30 18:37 ` Greg Freemyer
  0 siblings, 1 reply; 3+ messages in thread
From: Kazuya Mio @ 2009-09-30  7:22 UTC (permalink / raw)
  To: linux-ext4, Theodore Tso

If non-privileged user does e4defrag, e4defrag returns 1 despite
its success. This patch fixes this problem.

Signed-off-by: Kazuya Mio <k-mio@sx.jp.nec.com>
---

 e4defrag.c |    1 +
 1 file changed, 1 insertion(+)
diff --git a/misc/e4defrag.c b/misc/e4defrag.c
index 94f8529..98dda92 100644
--- a/misc/e4defrag.c
+++ b/misc/e4defrag.c
@@ -2025,6 +2025,7 @@ int main(int argc, char *argv[])
 				if (!(mode_flag & DETAIL) &&
 						current_uid != ROOT_UID) {
 					printf(" Done.\n");
+					success_flag = 1;
 					continue;
 				}

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 3/3] e4defrag: avoid unsuccessful return in non-privileged user
  2009-09-30  7:22 [PATCH 3/3] e4defrag: avoid unsuccessful return in non-privileged user Kazuya Mio
@ 2009-09-30 18:37 ` Greg Freemyer
  2009-10-01  8:16   ` Kazuya Mio
  0 siblings, 1 reply; 3+ messages in thread
From: Greg Freemyer @ 2009-09-30 18:37 UTC (permalink / raw)
  To: Kazuya Mio; +Cc: linux-ext4, Theodore Tso

2009/9/30 Kazuya Mio <k-mio@sx.jp.nec.com>:
> If non-privileged user does e4defrag, e4defrag returns 1 despite
> its success. This patch fixes this problem.
>
> Signed-off-by: Kazuya Mio <k-mio@sx.jp.nec.com>
> ---
>
>  e4defrag.c |    1 +
>  1 file changed, 1 insertion(+)
> diff --git a/misc/e4defrag.c b/misc/e4defrag.c
> index 94f8529..98dda92 100644
> --- a/misc/e4defrag.c
> +++ b/misc/e4defrag.c
> @@ -2025,6 +2025,7 @@ int main(int argc, char *argv[])
>                                if (!(mode_flag & DETAIL) &&
>                                                current_uid != ROOT_UID) {
>                                        printf(" Done.\n");
> +                                       success_flag = 1;
>                                        continue;
>                                }

I should know this, but this patch made me wonder about the underlying
implementation of EXT4_IOC_MOVE_EXT.

After EXT4_IOC_MOVE_EXT is called, can userspace somehow modify the
defragged file?

ie. If I only have readonly access to a file and I call
EXT4_IOC_MOVE_EXT to replace some of the data blocks, is it possible
now for me to write data to the donor_fd and thus modify the data in
the original file?

Greg
-- 
Greg Freemyer
Head of EDD Tape Extraction and Processing team
Litigation Triage Solutions Specialist
http://www.linkedin.com/in/gregfreemyer
Preservation and Forensic processing of Exchange Repositories White Paper -
<http://www.norcrossgroup.com/forms/whitepapers/tng_whitepaper_fpe.html>

The Norcross Group
The Intersection of Evidence & Technology
http://www.norcrossgroup.com
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 3/3] e4defrag: avoid unsuccessful return in non-privileged user
  2009-09-30 18:37 ` Greg Freemyer
@ 2009-10-01  8:16   ` Kazuya Mio
  0 siblings, 0 replies; 3+ messages in thread
From: Kazuya Mio @ 2009-10-01  8:16 UTC (permalink / raw)
  To: Greg Freemyer; +Cc: linux-ext4, Theodore Tso

2009/10/01 3:37, Greg Freemyer wrote::
> 2009/9/30 Kazuya Mio <k-mio@sx.jp.nec.com>:
>> If non-privileged user does e4defrag, e4defrag returns 1 despite
>> its success. This patch fixes this problem.
>>
>> Signed-off-by: Kazuya Mio <k-mio@sx.jp.nec.com>
>> ---
>>
>>  e4defrag.c |    1 +
>>  1 file changed, 1 insertion(+)
>> diff --git a/misc/e4defrag.c b/misc/e4defrag.c
>> index 94f8529..98dda92 100644
>> --- a/misc/e4defrag.c
>> +++ b/misc/e4defrag.c
>> @@ -2025,6 +2025,7 @@ int main(int argc, char *argv[])
>>                                if (!(mode_flag & DETAIL) &&
>>                                                current_uid != ROOT_UID) {
>>                                        printf(" Done.\n");
>> +                                       success_flag = 1;
>>                                        continue;
>>                                }
> 
> I should know this, but this patch made me wonder about the underlying
> implementation of EXT4_IOC_MOVE_EXT.
> 
> After EXT4_IOC_MOVE_EXT is called, can userspace somehow modify the
> defragged file?
> 
> ie. If I only have readonly access to a file and I call
> EXT4_IOC_MOVE_EXT to replace some of the data blocks, is it possible
> now for me to write data to the donor_fd and thus modify the data in
> the original file?
> 
> Greg

Nope, EXT4_IOC_MOVE_EXT only changes original file blocks but its file
data isn't changed.

If user has readonly access to original or donor file and is both two files
owner, EXT4_IOC_MOVE_EXT succeeds. This means that the ioctl replaces
data blocks and writes original file data into replaced blocks.

Regards,

Kazuya Mio

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-10-01  8:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-30  7:22 [PATCH 3/3] e4defrag: avoid unsuccessful return in non-privileged user Kazuya Mio
2009-09-30 18:37 ` Greg Freemyer
2009-10-01  8:16   ` Kazuya Mio

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).