Gitweb links:

...log 
http://git.netsurf-browser.org/netsurf.git/shortlog/4421d1bab6529132ee8b8988d2c2e538002906f5
...commit 
http://git.netsurf-browser.org/netsurf.git/commit/4421d1bab6529132ee8b8988d2c2e538002906f5
...tree 
http://git.netsurf-browser.org/netsurf.git/tree/4421d1bab6529132ee8b8988d2c2e538002906f5

The branch, master has been updated
       via  4421d1bab6529132ee8b8988d2c2e538002906f5 (commit)
       via  f7d97d64836a042effd52a894ed8b1abeff46960 (commit)
       via  6a9137f4319951b370b5b94e5d3049d6430e031d (commit)
      from  1150cf684d7b9a47fb6780d4bf22cd3d89df28da (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commitdiff 
http://git.netsurf-browser.org/netsurf.git/commit/?id=4421d1bab6529132ee8b8988d2c2e538002906f5
commit 4421d1bab6529132ee8b8988d2c2e538002906f5
Author: Daniel Silverstone <[email protected]>
Commit: Daniel Silverstone <[email protected]>

    llcache: Ensure we preserve iteratorness when sending messages
    
    In order to prevent a problem where iterating causes an abort
    which causes an iteration which clears the iteratorness of a
    user allowing it to delete itself causing a segfault, preserve
    the iteratorness when iterating in send_message
    
    Signed-off-by: Daniel Silverstone <[email protected]>

diff --git a/content/llcache.c b/content/llcache.c
index ff21d29..34b43d7 100644
--- a/content/llcache.c
+++ b/content/llcache.c
@@ -393,6 +393,7 @@ static nserror llcache_send_event_to_users(llcache_object 
*object,
 
        user = object->users;
        while (user != NULL) {
+               bool was_target = user->iterator_target;
                user->iterator_target = true;
 
                error = user->handle->cb(user->handle, event,
@@ -400,7 +401,7 @@ static nserror llcache_send_event_to_users(llcache_object 
*object,
 
                next_user = user->next;
 
-               user->iterator_target = false;
+               user->iterator_target = was_target;
 
                if (user->queued_for_delete) {
                        llcache_object_remove_user(object, user);


commitdiff 
http://git.netsurf-browser.org/netsurf.git/commit/?id=f7d97d64836a042effd52a894ed8b1abeff46960
commit f7d97d64836a042effd52a894ed8b1abeff46960
Author: Daniel Silverstone <[email protected]>
Commit: Daniel Silverstone <[email protected]>

    monkey: Report the errno when select() returns -1
    
    Signed-off-by: Daniel Silverstone <[email protected]>

diff --git a/frontends/monkey/main.c b/frontends/monkey/main.c
index 9e05d35..1e496cb 100644
--- a/frontends/monkey/main.c
+++ b/frontends/monkey/main.c
@@ -23,6 +23,7 @@
 #include <sys/types.h>
 #include <unistd.h>
 #include <string.h>
+#include <errno.h>
 
 #include "utils/config.h"
 #include "utils/sys_time.h"
@@ -306,6 +307,7 @@ static void monkey_run(void)
                                &exc_fd_set,
                                timeout);
                if (rdy_fd < 0) {
+                       NSLOG(netsurf, CRITICAL, "Unable to select: %s", 
strerror(errno));
                        monkey_done = true;
                } else if (rdy_fd > 0) {
                        if (FD_ISSET(0, &read_fd_set)) {


commitdiff 
http://git.netsurf-browser.org/netsurf.git/commit/?id=6a9137f4319951b370b5b94e5d3049d6430e031d
commit 6a9137f4319951b370b5b94e5d3049d6430e031d
Author: Daniel Silverstone <[email protected]>
Commit: Daniel Silverstone <[email protected]>

    monkey: Run scheduler before extracting fdsets
    
    We need to run the scheduler *before* we extract the fdsets from
    the fetchers, otherwise fetch aborts might result in EBADF
    
    Signed-off-by: Daniel Silverstone <[email protected]>

diff --git a/frontends/monkey/main.c b/frontends/monkey/main.c
index 87a486d..9e05d35 100644
--- a/frontends/monkey/main.c
+++ b/frontends/monkey/main.c
@@ -263,6 +263,9 @@ static void monkey_run(void)
 
        while (!monkey_done) {
 
+               /* discover the next scheduled event time */
+               schedtm = monkey_schedule_run();
+
                /* clears fdset */
                fetch_fdset(&read_fd_set, &write_fd_set, &exc_fd_set, &max_fd);
 
@@ -273,9 +276,6 @@ static void monkey_run(void)
                FD_SET(0, &read_fd_set);
                FD_SET(0, &exc_fd_set);
 
-               /* discover the next scheduled event time */
-               schedtm = monkey_schedule_run();
-
                /* setup timeout */
                switch (schedtm) {
                case -1:


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

Summary of changes:
 content/llcache.c       |    3 ++-
 frontends/monkey/main.c |    8 +++++---
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/content/llcache.c b/content/llcache.c
index ff21d29..34b43d7 100644
--- a/content/llcache.c
+++ b/content/llcache.c
@@ -393,6 +393,7 @@ static nserror llcache_send_event_to_users(llcache_object 
*object,
 
        user = object->users;
        while (user != NULL) {
+               bool was_target = user->iterator_target;
                user->iterator_target = true;
 
                error = user->handle->cb(user->handle, event,
@@ -400,7 +401,7 @@ static nserror llcache_send_event_to_users(llcache_object 
*object,
 
                next_user = user->next;
 
-               user->iterator_target = false;
+               user->iterator_target = was_target;
 
                if (user->queued_for_delete) {
                        llcache_object_remove_user(object, user);
diff --git a/frontends/monkey/main.c b/frontends/monkey/main.c
index 87a486d..1e496cb 100644
--- a/frontends/monkey/main.c
+++ b/frontends/monkey/main.c
@@ -23,6 +23,7 @@
 #include <sys/types.h>
 #include <unistd.h>
 #include <string.h>
+#include <errno.h>
 
 #include "utils/config.h"
 #include "utils/sys_time.h"
@@ -263,6 +264,9 @@ static void monkey_run(void)
 
        while (!monkey_done) {
 
+               /* discover the next scheduled event time */
+               schedtm = monkey_schedule_run();
+
                /* clears fdset */
                fetch_fdset(&read_fd_set, &write_fd_set, &exc_fd_set, &max_fd);
 
@@ -273,9 +277,6 @@ static void monkey_run(void)
                FD_SET(0, &read_fd_set);
                FD_SET(0, &exc_fd_set);
 
-               /* discover the next scheduled event time */
-               schedtm = monkey_schedule_run();
-
                /* setup timeout */
                switch (schedtm) {
                case -1:
@@ -306,6 +307,7 @@ static void monkey_run(void)
                                &exc_fd_set,
                                timeout);
                if (rdy_fd < 0) {
+                       NSLOG(netsurf, CRITICAL, "Unable to select: %s", 
strerror(errno));
                        monkey_done = true;
                } else if (rdy_fd > 0) {
                        if (FD_ISSET(0, &read_fd_set)) {


-- 
NetSurf Browser

_______________________________________________
netsurf-commits mailing list
[email protected]
http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org

Reply via email to