]> sigrok.org Git - sigrok-util.git/blobdiff - source/drv-api.c
don't assume the driver has been initialized when cleaning up.
[sigrok-util.git] / source / drv-api.c
index dbeea02fc826207e771ed104d85f84228202362c..1288a7fd58b53305ca5746c9fa208d51fde8c7b1 100644 (file)
@@ -33,7 +33,9 @@ static int clear_instances(void)
        struct dev_context *devc;
        GSList *l;
 
-       drvc = di->priv;
+       if (!(drvc = di->priv))
+               return SR_OK;
+
        for (l = drvc->instances; l; l = l->next) {
                if (!(sdi = l->data))
                        continue;
@@ -57,7 +59,7 @@ static int hw_init(void)
 
        if (!(drvc = g_try_malloc0(sizeof(struct drv_context)))) {
                sr_err("Driver context malloc failed.");
-               return SR_ERR;
+               return SR_ERR_MALLOC;
        }
 
        /* TODO */