]> sigrok.org Git - libsigrok.git/commitdiff
Fix a segfault with input/output modules.
authorUwe Hermann <redacted>
Sun, 17 Jul 2016 17:39:04 +0000 (19:39 +0200)
committerUwe Hermann <redacted>
Sun, 17 Jul 2016 17:39:04 +0000 (19:39 +0200)
Some functions in std.c were using

  const char *prefix = sdi->driver->name;

but were called from input/output modules as well (which don't have
a "driver" field).

As a temporary workaround, use "unknown" as prefix in such cases until
a more permanent solution is implemented.

This fixes bug #813.

src/std.c

index 7cd2313129456605a970924232b0ec990a8e04a7..a325371aa5e4709cdab84ebe33b6c696dcfe2fa6 100644 (file)
--- a/src/std.c
+++ b/src/std.c
@@ -91,7 +91,7 @@ SR_PRIV int std_cleanup(const struct sr_dev_driver *di)
  */
 SR_PRIV int std_session_send_df_header(const struct sr_dev_inst *sdi)
 {
-       const char *prefix = sdi->driver->name;
+       const char *prefix = (sdi->driver) ? sdi->driver->name : "unknown";
        int ret;
        struct sr_datafeed_packet packet;
        struct sr_datafeed_header header;
@@ -123,7 +123,7 @@ SR_PRIV int std_session_send_df_header(const struct sr_dev_inst *sdi)
  */
 SR_PRIV int std_session_send_df_end(const struct sr_dev_inst *sdi)
 {
-       const char *prefix = sdi->driver->name;
+       const char *prefix = (sdi->driver) ? sdi->driver->name : "unknown";
        int ret;
        struct sr_datafeed_packet packet;