Index: sys/dev/xen/blkfront/blkfront.c =================================================================== --- sys/dev/xen/blkfront/blkfront.c +++ sys/dev/xen/blkfront/blkfront.c @@ -1345,8 +1345,13 @@ &cm->cm_indirectionrefs[j])) break; } - if (j < sc->xbd_max_request_indirectpages) + if (j < sc->xbd_max_request_indirectpages) { + if (indirectpages != NULL) { + contigfree(indirectpages, PAGE_SIZE * + sc->xbd_max_request_indirectpages, M_XENBLOCKFRONT); + } break; + } cm->cm_indirectionpages = indirectpages; xbd_free_command(cm); }