There is a seg fault when Spice::getDouble is called and index is out of bounds
When calling: p_camera->getDouble("SPICE_KEYWORD_NAME", i) seg faults when "SPICE_KEYWORD_NAME" is not found in the spice keyword pool.
Not sure if the seg fault happens:
1. because keyword has not been furnished and can't be found in pool
2. because the index is out of bounds
To get this seg fault to occur:
1. copy tgo iak file to local directory
2. remove the _OD keywords from your copy
3. run spiceinit with your new iak (be sure to set ckpredict = true = spkpredict for this mission)
#3 Updated by Christopher Combs 4 months ago
- Status changed from Assigned to Feedback
I don't believe this is due to the index being out of bounds.
I followed your instructions to reproduce the error and found that the segfault occurs in Spice::readValue's call to gdpool_c
The getDouble call with the iteration is in TgoCassisDistortionMap's constructor. The segfault occurs regardless of the index being used. (If the keyword does not exist)
Is this something we should follow up on? gdpool_c belongs to NAIF, so there is not much we can do to check preemptively.
#5 Updated by Christopher Combs 4 months ago
- Status changed from In Progress to Resolved
This turned out to be a problem with a try that destructed an incomplete object while looking for a catch.
Built for CentOS and available for testing at /work/projects/isis/latest/m05163.
I tested using the following command from the spiceinit directory:
spiceinit from= CAS-MCO-2016-11-22T18.104.22.1684-NIR-02036-00.cub iak= ./tgocassisAddendum005.ti ik= em16_tgo_cassis_v06.ti spkpredict= true ckpredict= true