- if (len2 != len) R_ERROR_RETURN("unexpected len, wanted " #len2); \
- CHECKED_READ(len2, data)
+ if (len2 != len) { \
+ elprintf(EL_STATUS, "unexpected len %i, wanted %i (%s)", len, len2, #len2); \
+ if (len > len2) R_ERROR_RETURN("failed."); \
+ /* else read anyway and hope for the best.. */ \
+ } \
+ CHECKED_READ(len, data)