Zbigniew Jędrzejewski-Szmek 5d6eed
From b291d260e0ebc7a7528f37e97e8b404968f34e18 Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 03e93e
From: Martin Ejdestig <marejde@gmail.com>
Zbigniew Jędrzejewski-Szmek 03e93e
Date: Tue, 22 Nov 2016 01:21:00 +0100
Zbigniew Jędrzejewski-Szmek 03e93e
Subject: [PATCH] sd-event: fix sd_event_source_get_priority() (#4712)
Zbigniew Jędrzejewski-Szmek 03e93e
Zbigniew Jędrzejewski-Szmek 03e93e
To properly store priority in passed in pointer and return 0 for success.
Zbigniew Jędrzejewski-Szmek 03e93e
Also add a test for verifying that it works correctly.
Zbigniew Jędrzejewski-Szmek 03e93e
(cherry picked from commit 6680b8d118490bbb3e5522729ec50d9975088fd5)
Zbigniew Jędrzejewski-Szmek 03e93e
---
Zbigniew Jędrzejewski-Szmek 03e93e
 src/libsystemd/sd-event/sd-event.c   | 3 ++-
Zbigniew Jędrzejewski-Szmek 03e93e
 src/libsystemd/sd-event/test-event.c | 3 +++
Zbigniew Jędrzejewski-Szmek 03e93e
 2 files changed, 5 insertions(+), 1 deletion(-)
Zbigniew Jędrzejewski-Szmek 03e93e
Zbigniew Jędrzejewski-Szmek 03e93e
diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c
Zbigniew Jędrzejewski-Szmek 03e93e
index 9857f8b1fc..f94959adac 100644
Zbigniew Jędrzejewski-Szmek 03e93e
--- a/src/libsystemd/sd-event/sd-event.c
Zbigniew Jędrzejewski-Szmek 03e93e
+++ b/src/libsystemd/sd-event/sd-event.c
Zbigniew Jędrzejewski-Szmek 03e93e
@@ -1539,7 +1539,8 @@ _public_ int sd_event_source_get_priority(sd_event_source *s, int64_t *priority)
Zbigniew Jędrzejewski-Szmek 03e93e
         assert_return(s, -EINVAL);
Zbigniew Jędrzejewski-Szmek 03e93e
         assert_return(!event_pid_changed(s->event), -ECHILD);
Zbigniew Jędrzejewski-Szmek 03e93e
 
Zbigniew Jędrzejewski-Szmek 03e93e
-        return s->priority;
Zbigniew Jędrzejewski-Szmek 03e93e
+        *priority = s->priority;
Zbigniew Jędrzejewski-Szmek 03e93e
+        return 0;
Zbigniew Jędrzejewski-Szmek 03e93e
 }
Zbigniew Jędrzejewski-Szmek 03e93e
 
Zbigniew Jędrzejewski-Szmek 03e93e
 _public_ int sd_event_source_set_priority(sd_event_source *s, int64_t priority) {
Zbigniew Jędrzejewski-Szmek 03e93e
diff --git a/src/libsystemd/sd-event/test-event.c b/src/libsystemd/sd-event/test-event.c
Zbigniew Jędrzejewski-Szmek 03e93e
index 289114490c..c0e5e06a18 100644
Zbigniew Jędrzejewski-Szmek 03e93e
--- a/src/libsystemd/sd-event/test-event.c
Zbigniew Jędrzejewski-Szmek 03e93e
+++ b/src/libsystemd/sd-event/test-event.c
Zbigniew Jędrzejewski-Szmek 03e93e
@@ -172,6 +172,7 @@ static void test_basic(void) {
Zbigniew Jędrzejewski-Szmek 03e93e
         static const char ch = 'x';
Zbigniew Jędrzejewski-Szmek 03e93e
         int a[2] = { -1, -1 }, b[2] = { -1, -1}, d[2] = { -1, -1}, k[2] = { -1, -1 };
Zbigniew Jędrzejewski-Szmek 03e93e
         uint64_t event_now;
Zbigniew Jędrzejewski-Szmek 03e93e
+        int64_t priority;
Zbigniew Jędrzejewski-Szmek 03e93e
 
Zbigniew Jędrzejewski-Szmek 03e93e
         assert_se(pipe(a) >= 0);
Zbigniew Jędrzejewski-Szmek 03e93e
         assert_se(pipe(b) >= 0);
Zbigniew Jędrzejewski-Szmek 03e93e
@@ -209,6 +210,8 @@ static void test_basic(void) {
Zbigniew Jędrzejewski-Szmek 03e93e
         assert_se(sd_event_add_exit(e, &q, exit_handler, INT_TO_PTR('g')) >= 0);
Zbigniew Jędrzejewski-Szmek 03e93e
 
Zbigniew Jędrzejewski-Szmek 03e93e
         assert_se(sd_event_source_set_priority(x, 99) >= 0);
Zbigniew Jędrzejewski-Szmek 03e93e
+        assert_se(sd_event_source_get_priority(x, &priority) >= 0);
Zbigniew Jędrzejewski-Szmek 03e93e
+        assert_se(priority == 99);
Zbigniew Jędrzejewski-Szmek 03e93e
         assert_se(sd_event_source_set_enabled(y, SD_EVENT_ONESHOT) >= 0);
Zbigniew Jędrzejewski-Szmek 03e93e
         assert_se(sd_event_source_set_prepare(x, prepare_handler) >= 0);
Zbigniew Jędrzejewski-Szmek 03e93e
         assert_se(sd_event_source_set_priority(z, 50) >= 0);