On 19.05.2011 12:01, Jan Friesse wrote:
Few really small things inside: If fixed then

Reviewed-by: Jan Friesse<[email protected]>

Jerome Flesch wrote:
Sorry, I didn't fill the field "Reply-To" correctly (git send-email sent
this email even after I ^C^C^C-ed it ...).

Also I think I have to give some explanations regarding the changes I
made in this patch: I did the changes asked by Jan Friesse on my
previous patch (the one about fixing the build on BSD when using
--enable-fatal-warnings). I tried to compile with it on a GNU/Linux
system (Ubuntu) to be sure I didn't break anything on it, and ran into
some other issues regarding __attribute_warn_unused_result__, so I've
fixed them too.


On 19.05.2011 10:28, Jerome Flesch wrote:
---
   exec/coroipcs.c          |    2 +-
   exec/coropoll.c          |    8 ++++++--
   exec/main.c              |   14 +++++++++++---
   exec/totemconfig.c       |    2 +-
   exec/tsafe.c             |    2 ++
   exec/util.h              |    1 +
   tools/corosync-notifyd.c |    6 +++++-
   7 files changed, 27 insertions(+), 8 deletions(-)

diff --git a/exec/coroipcs.c b/exec/coroipcs.c
index a58c269..4c18c10 100644
--- a/exec/coroipcs.c
+++ b/exec/coroipcs.c
@@ -1241,7 +1241,7 @@ static void memcpy_dwrap (struct conn_info
*conn_info, void *msg, unsigned int l
       write_idx = conn_info->control_buffer->write;

       memcpy (&conn_info->dispatch_buffer[write_idx], msg, len);
-    conn_info->control_buffer->write = ((write_idx + len + 7)&
0xFFFFFFFF8) % conn_info->dispatch_size;
+    conn_info->control_buffer->write = ((write_idx + len + 7)&
0xFFFFFFF8) % conn_info->dispatch_size;
   }

   static void msg_send (void *conn, const struct iovec *iov, unsigned
int iov_len,
diff --git a/exec/coropoll.c b/exec/coropoll.c
index 95978df..4fc30a2 100644
--- a/exec/coropoll.c
+++ b/exec/coropoll.c
@@ -258,7 +258,9 @@ int poll_dispatch_modify (
               poll_instance->poll_entries[i].dispatch_fn = dispatch_fn;
               if (change_notify) {
                   char buf = 1;
-                write (poll_instance->pipefds[1],&buf, 1);
+retry_write:
+                if (write (poll_instance->pipefds[1],&buf, 1)<   0&&
errno == EINTR )
+                    goto retry_write;
               }

It's actually not needed. We are registering signals using signal(2),
and default befavior is to set SA_RESTART flag ->  errno == EINTR will
never appear.

We can leave check there, but please change
... 1)<   0&&
to
... 1)<  0&&

Actually, it is already correctly formated in my patch ("... 1) < 0 && ..."). I don't why, but when I replied to myself to give details on my changes, Thunderbird moved the spaces.



               goto error_put;
@@ -499,7 +501,9 @@ retry_poll:

           if (poll_instance->ufds[0].revents) {
               char buf;
-            read (poll_instance->ufds[0].fd,&buf, 1);
+retry_read:
+            if (read (poll_instance->ufds[0].fd,&buf, 1)<   0&&   errno
== EINTR)
+                goto retry_read;
               goto rebuild_poll;

Same as above

           }
           poll_entry_count = poll_instance->poll_entry_count;
diff --git a/exec/main.c b/exec/main.c
index c720128..42ecc24 100644
--- a/exec/main.c
+++ b/exec/main.c
@@ -526,6 +526,8 @@ static void priv_drop (void)

   static void corosync_tty_detach (void)
   {
+    FILE *r;
+
       /*
        * Disconnect from TTY if this is not a debug run
        */
@@ -550,9 +552,15 @@ static void corosync_tty_detach (void)
       /*
        * Map stdin/out/err to /dev/null.
        */
-    freopen("/dev/null", "r", stdin);
-    freopen("/dev/null", "a", stderr);
-    freopen("/dev/null", "a", stdout);
+    r = freopen("/dev/null", "r", stdin);
+    if (r == NULL)
+        corosync_exit_error (AIS_DONE_STD_TO_NULL_REDIR);
+    r = freopen("/dev/null", "a", stderr);
+    if (r == NULL)
+        corosync_exit_error (AIS_DONE_STD_TO_NULL_REDIR);
+    r = freopen("/dev/null", "a", stdout);
+    if (r == NULL)
+        corosync_exit_error (AIS_DONE_STD_TO_NULL_REDIR);
   }


Please surround if ... with { and }.

done

   static void corosync_mlockall (void)
diff --git a/exec/totemconfig.c b/exec/totemconfig.c
index fa5ab9c..0074327 100644
--- a/exec/totemconfig.c
+++ b/exec/totemconfig.c
@@ -473,7 +473,7 @@ int totem_config_validate (
               goto parse_error;
           }

-        if (totem_config->interfaces[i].ttl>   255 ||
totem_config->interfaces[i].ttl<   0) {
+        if (totem_config->interfaces[i].ttl>   255) {
               error_reason = "Invalid TTL (should be 0..255)";
               goto parse_error;
           }
diff --git a/exec/tsafe.c b/exec/tsafe.c
index 20ce79a..8f3fe09 100644
--- a/exec/tsafe.c
+++ b/exec/tsafe.c
@@ -978,6 +978,7 @@ void setpwent(void)
       assert(0);
   }

+#ifdef HAVE_UTMPX_H
   void setutxent(void)
   {
       static void (*real_setutxent)(void) = NULL;
@@ -989,6 +990,7 @@ void setutxent(void)
       }
       assert(0);
   }
+#endif

   char *strerror(int errnum)
   {
diff --git a/exec/util.h b/exec/util.h
index a3bb47c..9e149e5 100644
--- a/exec/util.h
+++ b/exec/util.h
@@ -63,6 +63,7 @@ enum e_ais_done {
       AIS_DONE_DIR_NOT_PRESENT = 16,
       AIS_DONE_AQUIRE_LOCK = 17,
       AIS_DONE_ALREADY_RUNNING = 18,
+    AIS_DONE_STD_TO_NULL_REDIR = 19,
   };

   static inline cs_error_t hdb_error_to_cs (int res)        \
diff --git a/tools/corosync-notifyd.c b/tools/corosync-notifyd.c
index 7f231fa..ec82c21 100644
--- a/tools/corosync-notifyd.c
+++ b/tools/corosync-notifyd.c
@@ -1033,7 +1033,11 @@ main(int argc, char *argv[])
       _cs_check_config();

       if (!conf[CS_NTF_FG]) {
-        daemon(0, 0);
+        if (daemon(0, 0)<   0)
+        {
+            perror("daemon() failed");
+            return EXIT_FAILURE;
+        }
       }

       num_notifiers = 0;



------------------------------------------------------------------------

_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais




Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to