Kai Blin escribió:
---
 dlls/msacm32/driver.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
------------------------------------------------------------------------

diff --git a/dlls/msacm32/driver.c b/dlls/msacm32/driver.c
index d4ad644..06e6614 100644
--- a/dlls/msacm32/driver.c
+++ b/dlls/msacm32/driver.c
@@ -430,7 +430,7 @@ LRESULT WINAPI acmDriverMessage(HACMDRIV
                 /* This verification is required because DRVCONFIGINFO is 12 
bytes
                    long, yet native msacm reports a 16-byte structure to 
codecs.
                  */
-                if (iStructSize < sizeof(DRVCONFIGINFO)) iStructSize = 
sizeof(DRVCONFIGINFO);
+                if (iStructSize > sizeof(DRVCONFIGINFO)) iStructSize = 
sizeof(DRVCONFIGINFO);
                 pConfigInfo = HeapAlloc(MSACM_hHeap, 0, iStructSize);
                 if (!pConfigInfo) {
                     ERR("OOM while supplying DRVCONFIGINFO for DRV_CONFIGURE, using 
NULL\n");
------------------------------------------------------------------------


This is not a typo, but rather an unnecessary verification, from when I didn't know the true size of a DRVCONFIGINFO. The struct size should be *exactly 16 bytes*, even though only the first 12 bytes are used. This patch might even introduce a bug, where the struct info assumed by the codec to be 16 bytes when only 12 are allocated, and some smart-ass codec tries to use the last 4 bytes of the struct for its own purposes, which with this patch are now past the end of the allocated array. A more correct patch would fix the comment to indicate that exactly 16 bytes are allocated for a 12-byte struct, and remove the conditional assignment altogether.

Alex Villacís Lasso

--
perl -e '$x = 2.4; print sprintf("%.0f + %.0f = %.0f\n", $x, $x, $x + $x);'



Reply via email to