[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Help with #32747

From: Jordi Gutiérrez Hermoso
Subject: Help with #32747
Date: Sun, 13 Mar 2011 07:43:54 -0600

I've been spending some time with


What I've been able to ascertain so far is that when the
SparseRep::SparseRep (octave_idx_type, octave_idx_type,
octave_idx_type) ctor in liboctave/Sparse.h:90 is called by
spallocate, there's unitialised memory in the SparseRep::r member
variable, but that shouldn't matter, because that memory shouldn't be
getting read. Further on inside Sparse<T>::assign (const idx_vector&,
const idx_vector&, const Sparse<T>&) near liboctave/Sparse.cc:2047,
during the S(5,1:2) call, the tmp variable that gets assigned to *this
is already all wrong, and I think it's at this point that the
uninitialised memory gets read. In the offending changeset that I
found with hg bisect, I see that there is a switch to use nnz instead
of nzmax, and I think there should have been a corresponding change
elsewhere in the aforementioend Sparse<T>::assign function that also
switches nzmax with nnz.

Anyways, that's just what I've been able to find out, and I'm
wondering if anyone else has further thoughts.

- Jordi G. H.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]