]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - aft.c
server: Avoid NULL pointer dereference in make_status_items().
[paraslash.git] / aft.c
diff --git a/aft.c b/aft.c
index 4a8124481b551b71c584a9483400420f270949d0..36f84943acfbad59fcfea1b03312d3e073b3824e 100644 (file)
--- a/aft.c
+++ b/aft.c
@@ -983,6 +983,8 @@ static int make_status_items(void)
        time_t current_time;
        int ret;
 
+       if (!status_item_ls_data.path) /* no audio file open */
+               return 0;
        ret = lls_parse(ARRAY_SIZE(argv), argv, cmd, &opts.lpr, NULL);
        assert(ret >= 0);
        time(&current_time);
@@ -2558,6 +2560,16 @@ static int aft_event_handler(enum afs_events event, struct para_buffer *pb,
                        return ret;
                make_status_items();
                return 1;
+       }
+       case BLOB_RENAME:
+       case BLOB_REMOVE:
+       case BLOB_ADD: {
+               /*
+                * These events are rare. We don't bother to check whether the
+                * current status items are affected and simply recreate them
+                * every time.
+                */
+               make_status_items();
        } default:
                return 0;
        }