]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
storage: Remove PATH_MAX sized stack allocation from iSCSI backend
authorMatthias Bolte <matthias.bolte@googlemail.com>
Sun, 3 Apr 2011 09:21:30 +0000 (11:21 +0200)
committerMatthias Bolte <matthias.bolte@googlemail.com>
Tue, 5 Apr 2011 07:12:46 +0000 (09:12 +0200)
src/storage/storage_backend_iscsi.c

index f5545374ad36b7380cdd6016b59a9f54301b47de..d86f0775b2c426e6c7a4a95e954cb9b9bfe22ad7 100644 (file)
@@ -408,12 +408,15 @@ static int
 virStorageBackendISCSIFindLUs(virStoragePoolObjPtr pool,
                               const char *session)
 {
-    char sysfs_path[PATH_MAX];
+    char *sysfs_path;
     int retval = 0;
     uint32_t host;
 
-    snprintf(sysfs_path, PATH_MAX,
-             "/sys/class/iscsi_session/session%s/device", session);
+    if (virAsprintf(&sysfs_path,
+                    "/sys/class/iscsi_session/session%s/device", session) < 0) {
+        virReportOOMError();
+        return -1;
+    }
 
     if (virStorageBackendSCSIGetHostNumber(sysfs_path, &host) < 0) {
         virReportSystemError(errno,
@@ -429,6 +432,8 @@ virStorageBackendISCSIFindLUs(virStoragePoolObjPtr pool,
         retval = -1;
     }
 
+    VIR_FREE(sysfs_path);
+
     return retval;
 }