Browse Source

Merge commit '9a48ec7' into bfgminer

Luke Dashjr 12 years ago
parent
commit
a672f38475
1 changed files with 15 additions and 16 deletions
  1. 15 16
      miner.c

+ 15 - 16
miner.c

@@ -640,6 +640,11 @@ char *set_request_diff(const char *arg, float *p)
 
 static
 char* add_serial_all(char*arg, char*p) {
+	size_t pLen = p - arg;
+	char dev[pLen + PATH_MAX];
+	memcpy(dev, arg, pLen);
+	char *devp = &dev[pLen];
+
 #ifdef HAVE_LIBUDEV
 
 	struct udev *udev = udev_new();
@@ -659,11 +664,7 @@ char* add_serial_all(char*arg, char*p) {
 
 		const char *devpath = udev_device_get_devnode(device);
 		if (devpath) {
-			size_t pLen = p - arg;
-			size_t dLen = strlen(devpath) + 1;
-			char dev[dLen + pLen];
-			memcpy(dev, arg, pLen);
-			memcpy(&dev[pLen], devpath, dLen);
+			strcpy(devp, devpath);
 			applog(LOG_DEBUG, "scan-serial: libudev all-adding %s", dev);
 			string_elist_add(dev, &scan_devices);
 		}
@@ -672,11 +673,10 @@ char* add_serial_all(char*arg, char*p) {
 	}
 	udev_enumerate_unref(enumerate);
 	udev_unref(udev);
-	return NULL;
 
 #elif defined(WIN32)
 
-	size_t bufLen = 0x10;  // temp!
+	size_t bufLen = 0x100;
 tryagain: ;
 	char buf[bufLen];
 	if (!QueryDosDevice(NULL, buf, bufLen)) {
@@ -687,11 +687,9 @@ tryagain: ;
 		}
 		return "scan-serial: Error occurred trying to enumerate COM ports with QueryDosDevice";
 	}
-	size_t tLen = p - arg;
-	char dev[12 + tLen];
-	memcpy(dev, arg, tLen);
-	memcpy(&dev[tLen], "\\\\.\\", 4);
-	char *devp = &dev[tLen + 4];
+	size_t tLen;
+	memcpy(devp, "\\\\.\\", 4);
+	devp = &devp[4];
 	for (char *t = buf; *t; t += tLen) {
 		tLen = strlen(t) + 1;
 		if (strncmp("COM", t, 3))
@@ -700,7 +698,6 @@ tryagain: ;
 		applog(LOG_DEBUG, "scan-serial: QueryDosDevice all-adding %s", dev);
 		string_elist_add(dev, &scan_devices);
 	}
-	return NULL;
 
 #else
 
@@ -708,7 +705,7 @@ tryagain: ;
 	struct dirent *de;
 	const char devdir[] = "/dev";
 	const size_t devdirlen = sizeof(devdir) - 1;
-	char devpath[sizeof(devdir) + NAME_MAX];
+	char *devpath = devp;
 	char *devfile = devpath + devdirlen + 1;
 	
 	D = opendir(devdir);
@@ -726,14 +723,16 @@ tryagain: ;
 		
 trydev:
 		strcpy(devfile, de->d_name);
-		applog(LOG_DEBUG, "scan-serial: /dev glob all-adding %s", devpath);
-		string_elist_add(devpath, &scan_devices);
+		applog(LOG_DEBUG, "scan-serial: /dev glob all-adding %s", dev);
+		string_elist_add(dev, &scan_devices);
 	}
 	closedir(D);
 	
 	return NULL;
 
 #endif
+
+	return NULL;
 }
 
 static char *add_serial(char *arg)