wbemprox: Iterate over all drives instead of just the first four.

Joachim Priesner joachim.priesner at web.de
Mon Dec 21 06:00:32 CST 2015


As sizeof(drives) == sizeof(DWORD) == 4, the loops will iterate only
over the first four logical drives. The author probably meant the number
of bits in the bitmask (32), but since drive letters range from A to Z
it makes more sense to just hard-code the limit.

Signed-off-by: Joachim Priesner <joachim.priesner at web.de>
---
 dlls/wbemprox/builtin.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
index 2ff3f50..b7db266 100644
--- a/dlls/wbemprox/builtin.c
+++ b/dlls/wbemprox/builtin.c
@@ -1176,7 +1176,7 @@ static enum fill_status fill_cdromdrive( struct table *table, const struct expr
 
     if (!resize_table( table, 1, sizeof(*rec) )) return FILL_STATUS_FAILED;
 
-    for (i = 0; i < sizeof(drives); i++)
+    for (i = 0; i < 26; i++)
     {
         if (drives & (1 << i))
         {
@@ -1598,7 +1598,7 @@ static enum fill_status fill_datafile( struct table *table, const struct expr *c
 
     dirstack = alloc_dirstack(2);
 
-    for (i = 0; i < sizeof(drives); i++)
+    for (i = 0; i < 26; i++)
     {
         if (!(drives & (1 << i))) continue;
 
@@ -1719,7 +1719,7 @@ static enum fill_status fill_directory( struct table *table, const struct expr *
 
     dirstack = alloc_dirstack(2);
 
-    for (i = 0; i < sizeof(drives); i++)
+    for (i = 0; i < 26; i++)
     {
         if (!(drives & (1 << i))) continue;
 
@@ -1831,7 +1831,7 @@ static enum fill_status fill_diskdrive( struct table *table, const struct expr *
 
     if (!resize_table( table, 2, sizeof(*rec) )) return FILL_STATUS_FAILED;
 
-    for (i = 0; i < sizeof(drives); i++)
+    for (i = 0; i < 26; i++)
     {
         if (drives & (1 << i))
         {
@@ -1895,7 +1895,7 @@ static enum fill_status fill_diskpartition( struct table *table, const struct ex
 
     if (!resize_table( table, 4, sizeof(*rec) )) return FILL_STATUS_FAILED;
 
-    for (i = 0; i < sizeof(drives); i++)
+    for (i = 0; i < 26; i++)
     {
         if (drives & (1 << i))
         {
@@ -1962,7 +1962,7 @@ static enum fill_status fill_logicaldisk( struct table *table, const struct expr
 
     if (!resize_table( table, 4, sizeof(*rec) )) return FILL_STATUS_FAILED;
 
-    for (i = 0; i < sizeof(drives); i++)
+    for (i = 0; i < 26; i++)
     {
         if (drives & (1 << i))
         {
-- 
2.1.4




More information about the wine-patches mailing list