[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kopete-devel
Subject:    [kopete-devel] kdenetwork/kopete/protocols/oscar/oscarsocket
From:       Richard Smith <kde () metafoo ! co ! uk>
Date:       2004-10-05 17:56:33
Message-ID: 20041005175633.7E49C126E7 () office ! kde ! org
[Download RAW message or body]

CVS commit by lilachaze: 

Check for out-of-range color and font indices a bit better.
Fix an off-by-one error giving wrong background colours according to RTF
spec.
CCMAIL: kopete-devel@kde.org


  M +5 -3      rtf.cc   1.5
  M +5 -3      rtf.ll   1.5


--- kdenetwork/kopete/protocols/oscar/oscarsocket/rtf.cc  #1.4:1.5
@@ -1791,5 +1791,5 @@ void RTF2HTML::FlushOutTags()
             {
                // RTF colors are 1-based; colors[] is a 0-based array.
-               if (t.param > colors.size())
+               if (t.param > colors.size() || t.param == 0)
                    break;
                QColor &c = colors[t.param-1];
@@ -1802,4 +1802,6 @@ void RTF2HTML::FlushOutTags()
         case TAG_FONT_FAMILY:
             {
+               if (t.param > fonts.size() || t.param == 0)
+                   break;
                FontDef &f = fonts[t.param-1];
                string name = (!f.nonTaggedName.empty()) ? f.nonTaggedName : \
f.taggedName; @@ -1808,7 +1810,7 @@ void RTF2HTML::FlushOutTags()
             break;
         case TAG_BG_COLOR:{
-               if (t.param > colors.size())
+               if (t.param > colors.size() || t.param == 0)
                    break;
-                QColor &c = colors[t.param];
+                QColor &c = colors[t.param-1];
                 PrintUnquoted("<span style=\"background-color:#%02X%02X%02X;\">", \
c.red(), c.green(), c.blue());  break;

--- kdenetwork/kopete/protocols/oscar/oscarsocket/rtf.ll  #1.4:1.5
@@ -126,5 +126,5 @@
             {
                // RTF colors are 1-based; colors[] is a 0-based array.
-               if (t.param > colors.size())
+               if (t.param > colors.size() || t.param == 0)
                    break;
                QColor &c = colors[t.param-1];
@@ -137,4 +137,6 @@
         case TAG_FONT_FAMILY:
             {
+               if (t.param > fonts.size() || t.param == 0)
+                   break;
                FontDef &f = fonts[t.param-1];
                string name = (!f.nonTaggedName.empty()) ? f.nonTaggedName : \
f.taggedName; @@ -143,7 +145,7 @@
             break;
         case TAG_BG_COLOR:{
-               if (t.param > colors.size())
+               if (t.param > colors.size() || t.param == 0)
                    break;
-                QColor &c = colors[t.param];
+                QColor &c = colors[t.param-1];
                 PrintUnquoted("<span style=\"background-color:#%02X%02X%02X;\">", \
c.red(), c.green(), c.blue());  break;


_______________________________________________
kopete-devel mailing list
kopete-devel@kde.org
https://mail.kde.org/mailman/listinfo/kopete-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic