From: Michael Tremer Date: Fri, 14 Feb 2014 16:32:04 +0000 (+0100) Subject: Fix reading harddisk serials. X-Git-Tag: v2.1.9~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f35156378198789cc504031ea02cbcf162bfa1d9;p=oddments%2Ffireinfo.git Fix reading harddisk serials. It was falsely assumed that the harddisk serial is terminated by NULL. This is not the case, so we initialize the memory with zeros and copy only 20 bytes. --- diff --git a/src/_fireinfo/fireinfo.c b/src/_fireinfo/fireinfo.c index 4ab2bfa..fc639d9 100644 --- a/src/_fireinfo/fireinfo.c +++ b/src/_fireinfo/fireinfo.c @@ -209,7 +209,9 @@ do_get_harddisk_serial(PyObject *o, PyObject *args) { if (!ioctl(fd, HDIO_GET_IDENTITY, &hd)) { char serial[21]; - strncpy(serial, (const char *)hd.serial_no, sizeof(serial)); + memset(serial, 0, sizeof(serial)); + + strncpy(serial, (const char *)hd.serial_no, sizeof(serial) - 1); if (serial[0]) return PyString_FromString(serial);