USB HAL: Fix infinite loop.

Bug: 35726475
Test: usb-service no longer consumes 100% CPU
Change-Id: I274caec45e7527cbacf57f9a735d711dcb481bfd
diff --git a/usb/1.0/default/Usb.cpp b/usb/1.0/default/Usb.cpp
index f46ff66..174e3c5 100644
--- a/usb/1.0/default/Usb.cpp
+++ b/usb/1.0/default/Usb.cpp
@@ -172,17 +172,22 @@
                 ports++;
             }
         }
+
+        if (ports == 0) {
+            closedir(dp);
+            return Status::SUCCESS;
+        }
+
         names.resize(ports);
         rewinddir(dp);
 
         while ((ep = readdir (dp))) {
-            /* 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) {
+                /* Check to see if new ports were added since the first pass. */
+                if (current >= ports) {
+                    rewinddir(dp);
+                    goto rescan;
+                }
                 names[current++] = ep->d_name;
             }
         }
@@ -234,7 +239,7 @@
 
     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];