Owen's patch to allow PowerMenu (third-party transparency tool) to
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Fri, 7 Dec 2001 20:37:18 +0000 (20:37 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Fri, 7 Dec 2001 20:37:18 +0000 (20:37 +0000)
not crash PuTTY.

git-svn-id: svn://svn.tartarus.org/sgt/putty@1463 cda61777-01e9-0310-a592-d414129be87e

window.c

index d9939fd..15f2387 100644 (file)
--- a/window.c
+++ b/window.c
@@ -1561,15 +1561,20 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message,
                    sprintf(c, "putty &%p", filemap);
                    cl = c;
                } else if (wParam == IDM_SAVEDSESS) {
-                   char *session =
-                       sessions[(lParam - IDM_SAVED_MIN) / 16];
-                   cl = smalloc(16 + strlen(session)); /* 8, but play safe */
-                   if (!cl)
-                       cl = NULL;     /* not a very important failure mode */
-                   else {
-                       sprintf(cl, "putty @%s", session);
-                       freecl = TRUE;
-                   }
+                   if ((lParam - IDM_SAVED_MIN) / 16 < nsessions) {
+                       char *session =
+                           sessions[(lParam - IDM_SAVED_MIN) / 16];
+                       cl = smalloc(16 + strlen(session));
+                                      /* 8, but play safe */
+                       if (!cl)
+                           cl = NULL;    
+                                      /* not a very important failure mode */
+                       else {
+                           sprintf(cl, "putty @%s", session);
+                           freecl = TRUE;
+                       }
+                   } else
+                       break;
                } else
                    cl = NULL;