213
213
 
            else {
214
214
 
                HDassert(io_info->op_type == H5D_IO_OP_WRITE);
215
215
 
                if((tmp_file_len = (*io_info->layout_ops.writevv)(io_info,
216
216
 
                        file_nseq, &curr_file_seq, file_len, file_off,
217
217
 
                        mem_nseq, &curr_mem_seq, mem_len, mem_off)) < 0)
218
218
 
                    HGOTO_ERROR(H5E_DATASPACE, H5E_WRITEERROR, FAIL, "write error")
219
219
 
            } /* end else */
220
220
 
221
221
 
            /* Decrement number of elements left to process */
222
222
 
            HDassert(((size_t)tmp_file_len % elmt_size) == 0);
 
223
+
            if(elmt_size == 0)
 
224
+
                HGOTO_ERROR(H5E_DATASPACE, H5E_BADVALUE, FAIL, "Resulted in division by zero")
223
225
 
            nelmts -= ((size_t)tmp_file_len / elmt_size);
224
226
 
        } /* end while */
225
227
 
    } /* end else */
226
228
 
227
229
 
done:
228
230
 
    /* Release file selection iterator */
229
231
 
    if(file_iter_init)
230
232
 
        if(H5S_SELECT_ITER_RELEASE(&file_iter) < 0)
231
233
 
            HDONE_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release selection iterator")
232
234