Understanding the functionality:- When the domain authentication details are provided - in code it looks for the PDC.- A function by name VerifyPDC is invoked to verify the PDC- A parameter is passed to the VerifyPDC function that can hold a maximum of MAX_COMPUTERNAME_LENGTH+1, which is as below: max 15 characters of PDC name and a Null terminator (\n)- This function invokes another function by name DCGetDcName - this will return the name of the PDC.- In the function DCGetDcName they were padding '\\' to the PDC name.- So for example if the DC name is 13 characters in length, the computation goes as below: 13 (length of Domain controller name) 1 (for null terminator) 2 (for \\) ------- 16 (total of 16 characters can be stored in the stack for that variable) - If we exceed then the buffer overflow error is expected.
General understanding:1. Issue occurs when we are upgrading to SP4 on the cluster. When DC's are installed on both the nodes of the cluster and Domain controllers having more than 14 or 15 characters.2. The workaround specified in the bug - Will work till SP3:
Virtual server setup crashes if the computer name of PDC of the domain contains 14 or 15 characters The workaround is to use debug version of sqlsui.dll and sqlsut.dll and replace them with the (sqlsui.dll & sqlsut.dll) files.3. The way it works till SP3 is... - The variables in debugger version was created with some extra space so it was capable of storing the extra characters.4. However this workaround doesnt help in SP4. In SP4 they have introduced a new switch.5. The functionality of this switch is to throw an exception if there is any stack overflow a