[project @ 2005-05-20 14:40:50 by krasimir]
authorkrasimir <unknown>
Fri, 20 May 2005 14:40:50 +0000 (14:40 +0000)
committerkrasimir <unknown>
Fri, 20 May 2005 14:40:50 +0000 (14:40 +0000)
Bugfix: in rtsFatalInternalErrorFn vsnprintf function was used instead of
snprintf. The code is changed so that the error message will be displayed
even if it is longer that BUFSIZE.

ghc/rts/RtsMessages.c

index 5df2fe4..aefee4c 100644 (file)
@@ -114,21 +114,15 @@ rtsFatalInternalErrorFn(char *s, va_list ap)
   if (isGUIApp())
   {
      char title[BUFSIZE], message[BUFSIZE];
-     int r;
 
-        r = vsnprintf(title,   BUFSIZE, "%s: internal error", prog_name);
-        if (r > 0 && r < BUFSIZE) {
-                strcpy(title, "internal error");
-     }
+     snprintf(title,   BUFSIZE, "%s: internal error", prog_name);
+     vsnprintf(message, BUFSIZE, s, ap);
 
-        r = vsnprintf(message, BUFSIZE, s, ap);
-        if (r > 0 && r < BUFSIZE) {
-          MessageBox(NULL /* hWnd */,
-         message,
-         title,
-         MB_OK | MB_ICONERROR | MB_TASKMODAL
-         );
-     };
+     MessageBox(NULL /* hWnd */,
+               message,
+               title,
+               MB_OK | MB_ICONERROR | MB_TASKMODAL
+              );
   }
   else
 #endif