Changeset 501 for trunk/src


Ignore:
Timestamp:
Feb 29, 2016, 8:59:39 PM (9 years ago)
Author:
katerina
Message:

Fix for ticket #397 (regression in sh_static.c).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/sh_static.c

    r481 r501  
    999999                return -1;
    10001000
    1001         while ((l = data[offset])) {
     1001        do {
    10021002
    10031003                if (offset < INT_MAX)
     
    10051005                else
    10061006                        return -1;
     1007
     1008                l = data[offset];
    10071009
    10081010                if ((l & 0xc0) == (0xc0)) {
     
    10181020                else
    10191021                  return -1;
    1020         }
     1022
     1023        } while (l);
    10211024
    10221025        return offset - orig_offset;
     
    10521055                if (offset < INT_MAX) offset++;
    10531056                else return -1;
    1054                 if (measure && (total < INT_MAX))
    1055                     total++;
     1057                if (measure)
     1058                    { if (total < INT_MAX) total++; else return -1; }
    10561059                if ((l & 0xc0) == (0xc0)) {
    1057                         if (measure && (total < INT_MAX))
    1058                                 total++;
     1060                        if (measure)
     1061                          { if (total < INT_MAX) total++; else return -1; }
    10591062                        /* compressed item, redirect */
    10601063                        offset = ((l & 0x3f) << 8) | data[offset];
     
    10821085                else
    10831086                  return -1;
    1084                 if (measure && (total <= (INT_MAX - l)))
    1085                         total += l;
     1087                if (measure)
     1088                  { if (total <= (INT_MAX -l)) total += l; else return -1; }
    10861089
    10871090                if (used == INT_MAX)
     
    10941097
    10951098        /* The null byte must be counted too */
    1096         if (measure && (total < INT_MAX)) {
    1097             total++;
     1099        if (measure) {
     1100            if (total < INT_MAX) total++; else return -1;
    10981101        }
    10991102
Note: See TracChangeset for help on using the changeset viewer.