* Charles Duffy: > @@ -242,8 +242,7 @@ > char buffer[MAXLINELEN+1]; > int errorCode = GetLastError(); > > - snprintf(buffer, MAXLINELEN, _("Unable to copy '%s' to '%s' - > error %d", 0), source, target, errorCode); > - strcat(buffer, ": %%s"); > + snprintf(buffer, MAXLINELEN, _("Unable to copy '%s' to '%s' - > error %d: %%s", 0), source, target, errorCode); > DisplayErrorToUser(errorCode, _("Failure copying files", 0), > buffer); > return FALSE; > } >
I believe that this is still wrong. The variables source and target might contain '%' characters, too. In other places, the source code uses strncpy() in a lenient way. You might want to check these places and make sure that the buffer is always NUL-terminated.