Jump to content


Microsoft KB3045171 Crash GDI+ System.Drawing.Drawing2D.AddString


Recommended Posts

Enjoy:

 private void test_Click(object sender, EventArgs e)        {            string str = ")";            // also strings : ~ ` ! " ( ) [ ] { } = < >    have similar problems            System.Drawing.FontFamily fontFamily = new System.Drawing.FontFamily("Arial Black");            // Also Batang, BatangChe, Dotum, DotumChe, Goody Stout, Gulim, Gulim Che, Gungsuh, Gungsuh Che,            //      Windings, Windings 2, Wingdings 3, ZDingbats, Comic Sans MS have similar problems                        System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath();            path.AddString(str, fontFamily,  0, 128, new System.Drawing.Point(0, 0), new System.Drawing.StringFormat()); //CRASH !!                        // .... do some things like ...            System.Drawing.RectangleF rect = path.GetBounds();            // .... do some things             path.Dispose();        }

Προχθεσινό το KB3045171: https://support.microsoft.com/en-us/kb/3045171
 
Αντί να φτιάξουνε τον κώδικά τους σωστά πήγανε και κόψανε τους παραπάνω χαρακτηρες που χρησιμοποιούνται σε "scripting" ....
 

 


EDIT 05-22-2015: Microsoft released a fix for this, for systems with Windows2003 and up. See https://support.microsoft.com/en-us/kb/3065979

Έγινε επεξεργασία από TifoziF1
  • Like 1
Link to comment
Share on other sites

We are seeing the same problem in our commercial apps.  Microsoft has introduced a bug in Gdi+ as part of KB3045171.  It appears they changed a loop index in the function cjFillPolygon from a signed value to an unsigned value.  This loop index counts down.  When it gets to 0 they decrement it once more causing an underflow.  It is then used to access an internal array past the end of the buffer.  This results in an access violation on Windows 7.

Link to comment
Share on other sites

We are seeing the same problem in our commercial apps.  Microsoft has introduced a bug in Gdi+ as part of KB3045171.  It appears they changed a loop index in the function cjFillPolygon from a signed value to an unsigned value.  This loop index counts down.  When it gets to 0 they decrement it once more causing an underflow.  It is then used to access an internal array past the end of the buffer.  This results in an access violation on Windows 7.

That's right and not only in windows 7. I have tested machines with windows XP and up and all are affected. As another one wrote here:

https://connect.microsoft.com/VisualStudio/feedback/details/1331855/kb3045171-crash-gdi-with-system-drawing-drawing2d-addstring
in the thread I have started, "This is a little ironic. They added a buffer overflow exploit in their security update..."
Link to comment
Share on other sites

Για την ώρα, ο μονος τρόπος αποφυγής του crash είναι να γίνει απεγκατάσταση του KB3045171 ! Περιμένουμε το fix από Microsoft

 

At the moment the only way to avoid this crash is to uninstall KB3045171 (instruct customers to do this also). We are still waiting Microsoft for a fix.

Link to comment
Share on other sites

Microsoft released a fix for this, for systems with Windows2003 and up. See https://support.microsoft.com/en-us/kb/3065979 A system restart is necessary after installing this update.

 

What about WindowsXP WEPOS ????

 

Η Microsoft, έβγαλε fix για συστήματα με Windows 2003 μέχρι και Windows Seven. https://support.microsoft.com/en-us/kb/3065979  Για windows XP WEPOS ομως nada !!!

Έγινε επεξεργασία από TifoziF1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.