* backend/genesys_gl841.c: One more instance of

sizeof(Genesys_Register_Set) vs 2
* backend/genesys.c: Add check for small register set in
  sanei_genesys_get_address
merge-requests/1/head
Pierre Willenbrock 2007-10-25 12:44:33 +00:00
rodzic 4cf4d8dd7f
commit e403a87c10
3 zmienionych plików z 17 dodań i 6 usunięć

Wyświetl plik

@ -1,3 +1,10 @@
2007-10-13 Pierre Willenbrock <pierre@pirsoft.dnsalias.org>
* backend/genesys_gl841.c: One more instance of
sizeof(Genesys_Register_Set) vs 2
* backend/genesys.c: Add check for small register set in
sanei_genesys_get_address
2007-10-24 Julien Blache <jb@jblache.org>
* backends/net.c: Add an optional connection timeout for the
initial connection to saned. Based on a patch from Ryan Duryea

Wyświetl plik

@ -499,7 +499,7 @@ Genesys_Register_Set *
sanei_genesys_get_address (Genesys_Register_Set * regs, SANE_Byte addr)
{
int i;
for (i = 0; i < GENESYS_MAX_REGS; i++)
for (i = 0; i < GENESYS_MAX_REGS && regs[i].address; i++)
{
if (regs[i].address == addr)
return &regs[i];

Wyświetl plik

@ -378,23 +378,27 @@ enum
/* ------------------------------------------------------------------------ */
/* Write to many registers */
/* Note: There is no known bulk register write,
this function is sending single registers instead */
static SANE_Status
gl841_bulk_write_register (Genesys_Device * dev,
Genesys_Register_Set * reg, size_t size)
{
SANE_Status status = SANE_STATUS_GOOD;
unsigned int i;
unsigned int elems;
/* handle differently sized register sets, reg[0x00] is the last one */
i = 0;
while ((i < size / 2) && (reg[i].address != 0))
while ((i < size / sizeof(Genesys_Register_Set)) && (reg[i].address != 0))
i++;
size = i * 2;
elems = i;
DBG (DBG_io, "gl841_bulk_write_register (size = %lu)\n",
(u_long) size);
(u_long) elems * sizeof(Genesys_Register_Set));
for (i = 0; i < size / 2; i++) {
for (i = 0; i < elems; i++) {
u_int8_t msg[2];
@ -417,7 +421,7 @@ gl841_bulk_write_register (Genesys_Device * dev,
}
DBG (DBG_io, "gl841_bulk_write_register: wrote %d bytes\n", size);
DBG (DBG_io, "gl841_bulk_write_register: wrote %d registers\n", elems);
return status;
}