[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-trivial] [PATCH] acpi unit-test: Create temporary disk file un
From: |
Marcel Apfelbaum |
Subject: |
Re: [Qemu-trivial] [PATCH] acpi unit-test: Create temporary disk file under /tmp |
Date: |
Fri, 20 Dec 2013 20:27:30 +0200 |
On Fri, 2013-12-20 at 12:36 +0400, Michael Tokarev wrote:
> 20.12.2013 11:05, Fam Zheng wrote:
> > As other tests, the image file is created in /tmp other than current
> > dir. Thus there will not be an unignored file under tests for intree
> > build.
> >
> > Signed-off-by: Fam Zheng <address@hidden>
> > ---
> > tests/acpi-test.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/tests/acpi-test.c b/tests/acpi-test.c
> > index ca83b1d6..e4f31b7 100644
> > --- a/tests/acpi-test.c
> > +++ b/tests/acpi-test.c
> > @@ -116,7 +116,7 @@ static uint8_t boot_sector[0x200] = {
> > [0x1FF] = 0xAA,
> > };
> >
> > -static const char *disk = "tests/acpi-test-disk.raw";
> > +static const char *disk = "/tmp/qtest-acpi-test-disk.raw";
>
> Please, PLEASE do NOT do this.
>
> If you want a temp dir, create one in qemu source directory
> (there's no urge to be able to specify one at build/run time,
> a symlink created by user will do), -- so that all this junk
> will be in a single dir easy to remove.
>
> But never, ever, use /tmp like this, not here not elsewhere
> else. When you use /tmp, first, there's $TEMPDIR, and second,
> much more important, there are apis like mkstemp(3) or
> tmpfile(3), or tempnam(3), -- THIS is the only proper way to
> use common temporary directories.
>
> Never, ever, create fixed (or even predictable, with getpid()
> for example) files in public temporary dirs. Never.
>
> For this issue, I think a better solution is to actually remove
> this file on make clean. Now you're just moving an unignored
> file elsewhere, which isn't good by its own.
I would use (and let glib do the work):
fd = g_file_open_tmp("prefix-XXXXXX", file_name, &error);
g_assert_no_error(error);
...
and of course in the end:
unlink(file_name);
I hope I helped,
Marcel
>
> Thanks,
>
> /mjt