[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: The open() system call in f8 really broken...



On Thu, 16 Aug 2007 14:21:17 -0500 (CDT), "Jon Ciesla" <limb jcomserv net> wrote:

> >> - if ((fd = open(fname, readonly? O_RDONLY : (O_RDWR|O_CREAT))) < 0) {
> >> + if ((fd = (open)(fname, readonly? O_RDONLY : (O_RDWR|O_CREAT))) < 0) {
> >
> > Now you're just being unfriendly about it by finding ways to defeat
> > a helpful check instead of adding the missing mode. What point are
> > you trying to prove by doing this?
> 
> What would the preferred fix look like?  I'd like to get this sorted out,
> as I'd like to send a patch for one of my affected packages upstream.

I would go for this myself, using Steve's example:

-  if ((fd = open(fname, readonly? O_RDONLY : (O_RDWR|O_CREAT))) < 0) {
+  if (readonly)
+    fd = open(fname, O_RDONLY);
+  else
+    fd = open(fname, O_RDWR|O_CREAT, S_IRUSR|S_IWUSR);
+  if (fd < 0) {

But please do what your programmer's sense suggests. You're the
master of your code.

-- Pete


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]