In an XS routine, if a line such as
plain = newSV (0);
is followed by
sv_catpvn (plain, (const char *) out_buffer, have);
it causes this error.
The "in subroutine entry" simply means that the last op was the subroutine entry one. The "use of uninitialized value" means that it attempted to add on to a scalar.