Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash while resizing window in Windows 3.11 with CL-GD5446 driver #358

Closed
Vort opened this issue Oct 3, 2024 · 2 comments
Closed

Crash while resizing window in Windows 3.11 with CL-GD5446 driver #358

Vort opened this issue Oct 3, 2024 · 2 comments

Comments

@Vort
Copy link
Contributor

Vort commented Oct 3, 2024

When window is moved or resized in certain way in Windows 3.11 with CL-GD5446 video card, stack overflow happens.

To reproduce this problem:

  1. Switch to 640x480x8 resolution;
  2. Move Program Manager window to the bottom right corner of the screen, like so:
    bochs_cirrus_crash_part1
  3. Start enlarging this window by dragging its top left corner;
  4. When mouse cursor will be close to the top left corner of the screen, Bochs will crash:
    bochs_cirrus_crash_part2

Stack overflow happens here:

if ((x0 + width) > svga_xres) {
BX_CIRRUS_THIS redraw_area(0, y0 + 1, width, height);
}

when x0 = 0, width = 641 and svga_xres = 640.

Version: 4a32e42.

@vruppert
Copy link
Contributor

vruppert commented Oct 4, 2024

I cannot reproduce this issue here, but this piece of code looks incorrect to me. I have added this code to fix issue #221, but it must fail with the input values you mentioned. I have now applied a more correct version.

@Vort
Copy link
Contributor Author

Vort commented Oct 4, 2024

No more crash with 85c58ff, thank you.

However, while slowly moving partially hidden window I noticed small glitches (dotted lines):
bochs_cirrus_win_move

@Vort Vort closed this as completed Oct 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants