Revision 05fcfada hw/pci.c

b/hw/pci.c
193 193
static int get_pci_config_device(QEMUFile *f, void *pv, size_t size)
194 194
{
195 195
    PCIDevice *s = container_of(pv, PCIDevice, config);
196
    uint8_t config[size];
196
    uint8_t config[PCI_CONFIG_SPACE_SIZE];
197 197
    int i;
198 198

  
199
    qemu_get_buffer(f, config, size);
200
    for (i = 0; i < size; ++i)
199
    assert(size == sizeof config);
200
    qemu_get_buffer(f, config, sizeof config);
201
    for (i = 0; i < sizeof config; ++i)
201 202
        if ((config[i] ^ s->config[i]) & s->cmask[i] & ~s->wmask[i])
202 203
            return -EINVAL;
203
    memcpy(s->config, config, size);
204
    memcpy(s->config, config, sizeof config);
204 205

  
205 206
    pci_update_mappings(s);
206 207

  

Also available in: Unified diff