diff options
author | Jens Georg <mail@jensge.org> | 2020-02-13 22:09:49 +0100 |
---|---|---|
committer | Jens Georg <mail@jensge.org> | 2020-02-13 22:09:49 +0100 |
commit | 1e2de70486f70b1f17f0e9aa69c7242b9fd8fe4c (patch) | |
tree | df0cdef1cbdc988838d070daddd378c8949a6f69 | |
parent | 16eb54f7d8bc9ee716ffdc139d702ae094e34905 (diff) | |
download | rygel-1e2de70486f70b1f17f0e9aa69c7242b9fd8fe4c.tar.gz |
core: Rework potential null access
-rw-r--r-- | src/librygel-core/rygel-basic-management.vala | 53 |
1 files changed, 35 insertions, 18 deletions
diff --git a/src/librygel-core/rygel-basic-management.vala b/src/librygel-core/rygel-basic-management.vala index 683ce50f..0e498a76 100644 --- a/src/librygel-core/rygel-basic-management.vala +++ b/src/librygel-core/rygel-basic-management.vala @@ -278,19 +278,24 @@ public class Rygel.BasicManagement : Service { if (!this.ensure_test_exists (action, out bm_test)) { return; } + var ping = bm_test as BasicManagementTestPing; + if (ping == null) { + action.return_error (707, _("Wrong Test Type")); + + return; + } string status, additional_info; uint success_count, failure_count; uint32 avg_response_time, min_response_time, max_response_time; - (bm_test as BasicManagementTestPing).get_results - (out status, - out additional_info, - out success_count, - out failure_count, - out avg_response_time, - out min_response_time, - out max_response_time); + ping.get_results (out status, + out additional_info, + out success_count, + out failure_count, + out avg_response_time, + out min_response_time, + out max_response_time); action.set ("Status", typeof (string), @@ -372,14 +377,20 @@ public class Rygel.BasicManagement : Service { return; } + var nslookup = bm_test as BasicManagementTestNSLookup; + if (nslookup == null) { + action.return_error (707, _("Wrong Test Type")); + + return; + } + string status, additional_info, result; uint success_count; - (bm_test as BasicManagementTestNSLookup).get_results - (out status, - out additional_info, - out success_count, - out result); + nslookup.get_results (out status, + out additional_info, + out success_count, + out result); action.set ("Status", typeof (string), @@ -455,14 +466,20 @@ public class Rygel.BasicManagement : Service { return; } + var traceroute = bm_test as BasicManagementTestTraceroute; + if (traceroute == null) { + action.return_error (707, _("Wrong Test Type")); + + return; + } + string status, additional_info, hop_hosts; uint32 response_time; - (bm_test as BasicManagementTestTraceroute).get_results - (out status, - out additional_info, - out response_time, - out hop_hosts); + traceroute.get_results (out status, + out additional_info, + out response_time, + out hop_hosts); action.set ("Status", typeof (string), |