[libvirt] [PATCH v3] xml: introduce startupPolicy for chardev device

Seiji Aguchi seiji.aguchi at hds.com
Thu Aug 15 20:34:38 UTC 2013


Eric,

> >> +        dev->source.data.file.path = strdup("/dev/null");
> >> +
> >> +        if (!(dev->source.data.file.path)) {
> >> +            virReportOOMError();
> >> +            return -1;
> >> +        }
> >> +
> >
> > This can be reduced to:
> > if (VIR_STRDUP(dev->source.data.file.path, "/dev/null") < 0)
> >     return -1;
> 
> That, and 'make syntax-check' should have warned you that use of
> strdup() is forbidden.
> 

I will test the 'make syntax-check' in next update.

> >
> >> +        if ((fd = open(dev->source.data.file.path,
> >> +                       O_CREAT | O_APPEND, S_IRUSR|S_IWUSR)) < 0) {
> >> +            virReportSystemError(errno,
> >> +                                 _("Unable to pre-create chardev file '%s'"),
> >> +                                 dev->source.data.file.path);
> >> +            return -1;
> >> +        }
> >>      }
> >
> > I think we can safely assume /dev/null to exist on any system where QEMU runs
> > and there's no need to pre-create it.
> 
> Correct assumption.  (Even though we don't currently compile qemu
> support on mingw, we use gnulib, which guarantees that open("/dev/null")
> will do the right thing on mingw even though that is the one platform
> likely to not have a /dev/null natively - so you should never need to
> O_CREAT /dev/null.  Furthermore, O_CREAT is wrong - /dev/null MUST be a
> char device, not a regular file, but if /dev/null is missing, you would
> be creating a regular file instead of a char device).

I will remove O_CREAT next time.

I appreciate your comment.

Seiji




More information about the libvir-list mailing list