Dmitry Timoshkov wrote: > DEVMODEW *dmW; > WORD dmW_size; > > - dmW_size = dmA->dmSize + CCHDEVICENAME; > - if (dmA->dmSize >= (const char *)dmA->dmFormName - (const char *)dmA + > CCHFORMNAME) > + dmW_size = dmA->dmSize; > + if (dmW_size > sizeof(DEVMODEA)) > + dmW_size = sizeof(DEVMODEA); >
Shouldn't this be sizeof(DEVMODEW)? > + > + dmW_size += CCHDEVICENAME; > Shouldn't this be CCDEVICENAME * sizeof(WCHAR)? > + if (dmA->dmSize >= FIELD_OFFSET(DEVMODEA, dmFormName) + CCHFORMNAME) > dmW_size += CCHFORMNAME; > Shouldn't this be CCHFORMNAME * sizeof(WCHAR)? -- Rob Shearman
