msacm: acmDriverPriority() compares dwPriority against negative values.
This issue was spotted by Andrew Talbot.
diff --git a/dlls/msacm32/driver.c b/dlls/msacm32/driver.c
index e537bc4..37dc929 100644
--- a/dlls/msacm32/driver.c
+++ b/dlls/msacm32/driver.c
@@ -671,9 +671,9 @@
if (padid->fdwSupport & ACMDRIVERDETAILS_SUPPORTF_LOCAL) {
return MMSYSERR_NOTSUPPORTED;
}
- if (dwPriority != 1 && dwPriority != -1) {
+ if (dwPriority != 1 && dwPriority != (DWORD)-1) {
FIXME("unexpected priority %ld, using sign only\n", dwPriority);
- if (dwPriority < 0) dwPriority = -1;
+ if ((signed)dwPriority < 0) dwPriority = (DWORD)-1;
if (dwPriority > 0) dwPriority = 1;
}
@@ -681,7 +681,7 @@
(padid->pPrevACMDriverID->fdwSupport & ACMDRIVERDETAILS_SUPPORTF_LOCAL))) {
/* do nothing - driver is first of list, or first after last
local driver */
- } else if (dwPriority == -1 && padid->pNextACMDriverID == NULL) {
+ } else if (dwPriority == (DWORD)-1 && padid->pNextACMDriverID == NULL) {
/* do nothing - driver is last of list */
} else {
MSACM_RePositionDriver(padid, dwPriority);