int i, w, ret, s = n * 2 + sizeof(mso_head) + sizeof(mso_foot);
char *p, *buf;
int i, w, ret, s = n * 2 + sizeof(mso_head) + sizeof(mso_foot);
char *p, *buf;
parent = udev_device_get_parent_with_subsystem_devtype(
dev, "usb", "usb_device");
if (!parent) {
parent = udev_device_get_parent_with_subsystem_devtype(
dev, "usb", "usb_device");
if (!parent) {
s = strcspn(iProduct, " ");
if (s > sizeof(product) ||
strlen(iProduct) - s > sizeof(manufacturer)) {
s = strcspn(iProduct, " ");
if (s > sizeof(product) ||
strlen(iProduct) - s > sizeof(manufacturer)) {
strcpy(manufacturer, iProduct + s);
sprintf(hwrev, "r%d", mso->hwrev);
strcpy(manufacturer, iProduct + s);
sprintf(hwrev, "r%d", mso->hwrev);
- mso = malloc(sizeof(struct mso));
- if (!mso)
- continue;
- memset(mso, 0, sizeof(struct mso));
+ if (!(mso = g_try_malloc0(sizeof(struct mso)))) {
+ sr_err("mso19: %s: mso malloc failed", __func__);
+ continue; /* TODO: Errors handled correctly? */
+ }
sdi = sr_device_instance_new(devcnt, SR_ST_INITIALIZING,
manufacturer, product, hwrev);
if (!sdi) {
sdi = sr_device_instance_new(devcnt, SR_ST_INITIALIZING,
manufacturer, product, hwrev);
if (!sdi) {
/* FIXME: discard serial buffer */
mso_check_trigger(sdi, &mso->trigger_state);
/* FIXME: discard serial buffer */
mso_check_trigger(sdi, &mso->trigger_state);
ret = mso_reset_adc(sdi);
if (ret != SR_OK)
return ret;
mso_check_trigger(sdi, &mso->trigger_state);
ret = mso_reset_adc(sdi);
if (ret != SR_OK)
return ret;
mso_check_trigger(sdi, &mso->trigger_state);