Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b31cbe94 authored by Badhri Jagan Sridharan's avatar Badhri Jagan Sridharan
Browse files

USB HAL: Fix infinite loop.

Bug: 35726475
Test: usb-service no longer consumes 100% CPU
Change-Id: I274caec45e7527cbacf57f9a735d711dcb481bfd
parent 393f3907
Loading
Loading
Loading
Loading
+12 −7
Original line number Diff line number Diff line
@@ -172,17 +172,22 @@ rescan:
                ports++;
            }
        }

        if (ports == 0) {
            closedir(dp);
            return Status::SUCCESS;
        }

        names.resize(ports);
        rewinddir(dp);

        while ((ep = readdir (dp))) {
            if (ep->d_type == DT_LNK) {
                /* Check to see if new ports were added since the first pass. */
                if (current >= ports) {
                    rewinddir(dp);
                    goto rescan;
                }

            if (ep->d_type == DT_LNK) {
                names[current++] = ep->d_name;
            }
        }
@@ -234,7 +239,7 @@ Status getPortStatusHelper (hidl_vec<PortStatus>& currentPortStatus) {

    if (result == Status::SUCCESS) {
        currentPortStatus.resize(names.size());
        for(std::vector<std::string>::size_type i = 0; i != names.size(); i++) {
        for(std::vector<std::string>::size_type i = 0; i < names.size(); i++) {
            ALOGI("%s", names[i].c_str());
            currentPortStatus[i].portName = names[i];