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

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



Pete Zaitcev wrote:
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) {
I did this way because I thought it made the code more readable if
I broke things into separate statements... I've never been a fan of
inlining statements...

steved.


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