diff --git a/dlls/sane.ds/sane_main.c b/dlls/sane.ds/sane_main.c index 413649e18d0..3bd231e3123 100644 --- a/dlls/sane.ds/sane_main.c +++ b/dlls/sane.ds/sane_main.c @@ -645,19 +645,19 @@ static TW_UINT16 SANE_OpenDS( pTW_IDENTITY pOrigin, pTW_IDENTITY self) { /* To make string as short as above */ lstrcpynA(name, sane_devlist[i]->vendor, sizeof(name)-1); - if (strcmp(name, self->Manufacturer)) + if (self->Manufacturer && *self->Manufacturer && strcmp(name, self->Manufacturer)) continue; lstrcpynA(name, sane_devlist[i]->model, sizeof(name)-1); - if (strcmp(name, self->ProductFamily)) + if (self->ProductFamily && *self->ProductFamily && strcmp(name, self->ProductFamily)) continue; copy_sane_short_name(sane_devlist[i]->name, name, sizeof(name) - 1); - if (strcmp(name, self->ProductName)) + if (self->ProductName && *self->ProductName && strcmp(name, self->ProductName)) continue; break; } if (!sane_devlist[i]) { - FIXME("Scanner not found? Using first one!\n"); - i=0; + FIXME("Scanner not found.\n"); + return TWRC_FAILURE; } status = psane_open(sane_devlist[i]->name,&activeDS.deviceHandle); if (status == SANE_STATUS_GOOD) {