SvSETMAGIC(bufsv);
static SV *mpxs_Apache__RequestRec_read(pTHX_ request_rec *r,                                         SV *bufsv, apr_size_t len,                                         apr_off_t offset){    SSize_t total;    if (!SvOK(bufsv)) {        sv_setpvn(bufsv, "", 0);    }    if (len <= 0) {        Perl_croak(aTHX_ "The LENGTH argument can't be negative");    }    /* XXX: need to handle negative offset */    /* XXX: need to pad with \0 if offset > size of the buffer */    mpxs_sv_grow(bufsv, len+offset);    total = modperl_request_read(aTHX_ r, SvPVX(bufsv)+offset, len);    if (total > 0) {        mpxs_sv_cur_set(bufsv, offset+total);        SvTAINTED_on(bufsv);    }     else {        sv_setpvn(bufsv, "", 0);    }    return newSViv(total);}