If my assumption that Eigen allows multiplying zero sized matrices on purpose is correct, then there is a dereferencing of null pointer happening which seems benign to start with, but I'm not sure if it always so because the function getVectorMapper causing the trouble is used at other places as well. To reproduce, here's the code (to be run with UBSan) : https://gist.github.com/m-chaturvedi/5eb211e43b55943d3e86f7f13cd429b3 I say benign because all the usages of lhs0 variable which is calling the function dereferencing a null pointer (BlasUtil.h:218 via BlasUtil.h:211 in version 3.3.3) are conditional and never run for zero sized matrices: https://bitbucket.org/m-chaturvedi/eigen/src/67e894c6cd8f5f1f604b27d37ed47fdf012674ff/Eigen/src/Core/products/GeneralMatrixVector.h?at=3.3.3&fileviewer=file-view-default#GeneralMatrixVector.h-582 I observed that the bug is not reproducible with the current default, perhaps because GeneralMatrixVector.h was totally revamped, but is reproducible with 3.3.4.
I can confirm this. In the devel branch it has been fixed within this commit (and the following "fix" commit): https://bitbucket.org/eigen/eigen/commits/21acc0e8d782
-- GitLab Migration Automatic Message -- This bug has been migrated to gitlab.com's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.com/libeigen/eigen/issues/1466.