aboutsummaryrefslogtreecommitdiff
path: root/hardinfo/storage_util.c
diff options
context:
space:
mode:
authorAlexey Berezhok <bayrepo.info@gmail.com>2023-10-13 21:40:11 +0300
committerL. Pereira <l@tia.mat.br>2023-10-13 12:28:28 -0700
commit01c8928ef55bc2f11bb76401f89c34e0539e6879 (patch)
tree025d9e74e88fbaa962fe42423aa18265df8c5b54 /hardinfo/storage_util.c
parent5996cebeeffad869f3c1bc79dacb87e2ec4d390f (diff)
Here is the environment cinfiguration: cpu - atom, sd card as bootable disk, loist of devices:
/sys/block/zram0 /sys/block/mmcblk0boot0 /sys/block/mmcblk0boot1 /sys/block/mmcblk2 /sys/block/mmcblk0 Hardinfo got nex pathes for reading for the report: 1) # cat /sys/block/mmcblk0/device/oemid 0x0103 2) # cat /sys/block/mmcblk2/device/oemid 0x534d 3) # cat /sys/block/mmcblk0boot0/device/oemid cat: /sys/block/mmcblk0boot0/device/oemid: No such file or directory 4) # cat /sys/block/mmcblk0boot1/device/oemid cat: /sys/block/mmcblk0boot1/device/oemid: No such file or directory In the code no checks if files from previous step for device was read and pointer not NULL: gchar *oemid_path = g_strdup_printf("/sys/block/%s/device/oemid", e->d->block_dev); gchar *manfid_path = g_strdup_printf("/sys/block/%s/device/manfid", e->d->block_dev); gchar *oemid = NULL, *manfid = NULL; g_file_get_contents(oemid_path, &oemid, NULL, NULL); g_file_get_contents(manfid_path, &manfid, NULL, NULL); unsigned int id = strtol(oemid, NULL, 16); ... id = strtol(manfid, NULL, 16); Before srttol need check for NULL
Diffstat (limited to 'hardinfo/storage_util.c')
-rw-r--r--hardinfo/storage_util.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/hardinfo/storage_util.c b/hardinfo/storage_util.c
index ce824071..7e61d336 100644
--- a/hardinfo/storage_util.c
+++ b/hardinfo/storage_util.c
@@ -100,7 +100,7 @@ void check_sdcard_vendor(u2driveext *e) {
g_file_get_contents(oemid_path, &oemid, NULL, NULL);
g_file_get_contents(manfid_path, &manfid, NULL, NULL);
- unsigned int id = strtol(oemid, NULL, 16);
+ unsigned int id = oemid?strtol(oemid, NULL, 16):0;
char c2 = id & 0xff, c1 = (id >> 8) & 0xff;
qpath = g_strdup_printf("OEMID %02x%02x", (unsigned int)c1, (unsigned int)c2);
@@ -114,7 +114,7 @@ void check_sdcard_vendor(u2driveext *e) {
isprint(c1) ? c1 : '.', isprint(c2) ? c2 : '.');
g_free(qpath);
- id = strtol(manfid, NULL, 16);
+ id = manfid?strtol(manfid, NULL, 16):0;
qpath = g_strdup_printf("MANFID %06x", id);
scan_ids_file(sdcard_ids_file, qpath, &result, -1);
g_free(manfid);