diff -ur ddcprobe-1.0/int10/i10_vbios.c ddcprobe-2.0/int10/i10_vbios.c --- ddcprobe-1.0/int10/i10_vbios.c 2005-02-23 20:01:29 +0300 +++ ddcprobe-2.0/int10/i10_vbios.c 2005-07-01 22:48:26 +0400 @@ -350,7 +350,8 @@ log_err("vbe: failed to read %d bytes at 0x%x, errno = %d\n", size, V_BIOS, errno); } else { - if(chksum((CARD8 *) V_BIOS)) ok = 1; + chksum((CARD8 *) V_BIOS); + ok = 1; } } } diff -ur ddcprobe-1.0/vbe.c ddcprobe-2.0/vbe.c --- ddcprobe-1.0/vbe.c 2005-06-29 14:37:18 +0400 +++ ddcprobe-2.0/vbe.c 2005-07-01 18:00:42 +0400 @@ -121,12 +121,12 @@ info->version = version; info->oem_version = oem_version; info->memory_size = memory_size; - strncpy(info->oem_name, get_str(tmp, sizeof tmp, v + 0x06), sizeof(info->oem_name)); + info->oem_name = strdup(get_str(tmp, sizeof tmp, v + 0x06)); if ((info->version >> 8) >= 2) { - strncpy(info->vendor_name, get_str(tmp, sizeof tmp, v + 0x16), sizeof(info->vendor_name)); - strncpy(info->product_name, get_str(tmp, sizeof tmp, v + 0x1a), sizeof(info->product_name)); - strncpy(info->product_revision, get_str(tmp, sizeof tmp, v + 0x1e), sizeof(info->product_revision)); + info->vendor_name = strdup(get_str(tmp, sizeof tmp, v + 0x16)); + info->product_name = strdup(get_str(tmp, sizeof tmp, v + 0x1a)); + info->product_revision = strdup(get_str(tmp, sizeof tmp, v + 0x1e)); } get_data(tmp, sizeof(tmp), segofs2addr(v + 0x0e)); i = 0; diff -ur ddcprobe-1.0/vbe.h ddcprobe-2.0/vbe.h --- ddcprobe-1.0/vbe.h 2005-06-29 14:18:08 +0400 +++ ddcprobe-2.0/vbe.h 2005-07-01 17:57:04 +0400 @@ -8,12 +8,12 @@ struct vbe_info { unsigned char signature[4]; u_int16_t version; - char oem_name[64]; + char *oem_name; /* u_int32_t capabilities; */ u_int16_t mode_list[128]; - char vendor_name[64]; - char product_name[64]; - char product_revision[32]; + char *vendor_name; + char *product_name; + char *product_revision; u_int32_t memory_size; /* VESA 3.0+ */ u_int16_t oem_version;