lib/fold: Catch error case from mbrtowc()
[petitboot] / lib / fold / fold.c
index fd23b066f3e58b49c107176d5957c8eaae68b845..812a324839223df6fd43af74f5549754fb6a0146 100644 (file)
@@ -36,8 +36,10 @@ void fold_text(const char *text,
 
                assert(bytes != (size_t)-1);
 
-               /* we'll get a zero size for the nul terminator */
-               if (!bytes) {
+               /* we'll get a zero size for the nul terminator, (size_t) -2
+                * if we've reached the end of the buffer, or (size_t) -1 on
+                * error */
+               if (!bytes || bytes == (size_t) -2 || bytes == (size_t) -1) {
                        line_cb(arg, start, end - start);
                        break;
                }