ols: fixed *ctx null dereferences that would SEGFAULT on probing for a OLS or attempting to read from it.

Signed-off-by: Matt Ranostay <mranostay@gmail.com>
This commit is contained in:
Matt Ranostay 2012-03-08 22:26:30 -08:00
parent 9031ce63f3
commit 13d0d2698c
1 changed files with 3 additions and 1 deletions

View File

@ -445,6 +445,7 @@ static int hw_init(const char *devinfo)
/* got metadata */
sdi = get_metadata(fds[i].fd);
sdi->index = final_devcnt;
ctx = sdi->priv;
} else {
/* not an OLS -- some other board that uses the sump protocol */
sdi = sr_dev_inst_new(final_devcnt, SR_ST_INACTIVE,
@ -705,10 +706,11 @@ static int receive_data(int fd, int revents, void *cb_data)
ctx = NULL;
for (l = dev_insts; l; l = l->next) {
sdi = l->data;
if (ctx->serial->fd == fd) {
ctx = sdi->priv;
if (ctx->serial->fd == fd) {
break;
}
ctx = NULL;
}
if (!ctx)
/* Shouldn't happen. */