Fixes for memory issues detected by valgrind

This commit is contained in:
Térence Clastres 2020-08-12 20:29:39 +02:00 committed by Adam Honse
parent ff07a488a2
commit 53379c5482
17 changed files with 74 additions and 27 deletions

View file

@ -36,11 +36,15 @@ void superio_enter(int ioreg)
#else
unsigned char temp = 0x87;
dev_port_fd = open("/dev/port", O_RDWR, "rw");
lseek(dev_port_fd, ioreg, SEEK_SET);
write(dev_port_fd, &temp, 1);
lseek(dev_port_fd, ioreg, SEEK_SET);
write(dev_port_fd, &temp, 1);
close(dev_port_fd);
if (dev_port_fd >= 0)
{
lseek(dev_port_fd, ioreg, SEEK_SET);
write(dev_port_fd, &temp, 1);
lseek(dev_port_fd, ioreg, SEEK_SET);
write(dev_port_fd, &temp, 1);
close(dev_port_fd);
}
#endif
}
@ -60,10 +64,14 @@ void superio_outb(int ioreg, int reg, int val)
Out32(ioreg + 1, val);
#else
dev_port_fd = open("/dev/port", O_RDWR, "rw");
lseek(dev_port_fd, ioreg, SEEK_SET);
write(dev_port_fd, &reg, 1);
write(dev_port_fd, &val, 1);
close(dev_port_fd);
if (dev_port_fd >= 0)
{
lseek(dev_port_fd, ioreg, SEEK_SET);
write(dev_port_fd, &reg, 1);
write(dev_port_fd, &val, 1);
close(dev_port_fd);
}
#endif
}
@ -82,12 +90,20 @@ int superio_inb(int ioreg, int reg)
Out32(ioreg, reg);
return Inp32(ioreg + 1);
#else
unsigned char temp;
unsigned char temp = 0;
dev_port_fd = open("/dev/port", O_RDWR, "rw");
lseek(dev_port_fd, ioreg, SEEK_SET);
write(dev_port_fd, &reg, 1);
read(dev_port_fd, &temp, 1);
close(dev_port_fd);
return((int)temp);
if (dev_port_fd >= 0)
{
lseek(dev_port_fd, ioreg, SEEK_SET);
write(dev_port_fd, &reg, 1);
read(dev_port_fd, &temp, 1);
close(dev_port_fd);
return((int)temp);
}
else
{
return -1;
}
#endif
}