Commit 2daf456c authored by Vladimir Bashkirtsev's avatar Vladimir Bashkirtsev

Fixed bad_alloc in ErasureCodeShec

parent 8c64eba7
......@@ -36,6 +36,7 @@ all: ceph-config
patch -Np1 -d ceph-15.2.4 < ceph-15.2.4-fix_ceph-volume_systemd_unit.patch
patch -Np1 -d ceph-15.2.4 < ceph-15.2.4-no_git.patch
patch -Np1 -d ceph-15.2.4 < ceph-15.2.4-fix_librbd_duplicate.patch
patch -Np1 -d ceph-15.2.4 < ceph-15.2.4-fix_ErasureCodeShec.patch
if [ `uname -m` = 'armv7l' ] ; then \
patch -Np1 -d ceph-15.2.4 < ceph-15.2.4-arm32_fix.patch ; \
fi
......
diff -uNr ceph-15.2.4/src/erasure-code/shec/ErasureCodeShec.cc ceph-15.2.4-fix_ErasureCodeShec/src/erasure-code/shec/ErasureCodeShec.cc
--- ceph-15.2.4/src/erasure-code/shec/ErasureCodeShec.cc 2020-07-01 01:10:51.000000000 +0930
+++ ceph-15.2.4-fix_ErasureCodeShec/src/erasure-code/shec/ErasureCodeShec.cc 2020-11-14 00:46:20.029488684 +1030
@@ -197,7 +197,10 @@
}
unsigned int k = get_data_chunk_count();
unsigned int m = get_chunk_count() - k;
- unsigned blocksize = (*chunks.begin()).second.length();
+ unsigned blocksize = 0;
+ if (chunks.size() > 0) {
+ blocksize = (*chunks.begin()).second.length();
+ }
for (unsigned int i = 0; i < k + m; i++) {
if (chunks.find(i) == chunks.end()) {
bufferlist tmp;
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment