diff --git a/src/configfsisomanager.cpp b/src/configfsisomanager.cpp index 386526b..fe8b1d0 100644 --- a/src/configfsisomanager.cpp +++ b/src/configfsisomanager.cpp @@ -25,7 +25,7 @@ char *get_gadget_root() { gadgetRoot = strjin(usbGadgetRoot, entry->d_name); udc = sysfs_read(strjin(gadgetRoot, "/UDC")); - if (strcmp(udc, getprop("sys.usb.controller")) == 1) + if (strcmp(udc, getprop("sys.usb.controller")) == 0) break; } } diff --git a/src/util.cpp b/src/util.cpp index e96c29b..d435574 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -65,14 +65,20 @@ void sysfs_write(char *path, char *content) char *sysfs_read(char *path) { - char *value = nullptr; + std::string value; std::ifstream sysfsFile(path); - sysfsFile >> path; + if (!sysfsFile.is_open()) + { + return nullptr; + } + sysfsFile >> value; sysfsFile.close(); - return value; + char *result = new char[value.length() + 1]; + strcpy(result, value.c_str()); + return result; + } - char *getprop(char *key) { std::array buffer;