for (i = 0; i < n;) {
v = in[i++];
for (l = 1; l < 255; l++) {
+ /* end of input data */
+ if (i == n)
+ break;
+ /* change in color */
if (v != in[i])
break;
i++;
return -EIO;
}
v = in[i++];
+ if (j + l > n) {
+ l = n - j;
+ printf("Warning: RLE encoding exceeds image size\n");
+ }
memset(out+j, v, l);
j += l;
+ /* end of output data */
+ if (j == n)
+ break;
}
memcpy(in, out, n);