Skip to content
Snippets Groups Projects
Commit 5796fff1 authored by Benjamin Wenger's avatar Benjamin Wenger
Browse files

Merge branch 'hotfix/SwappedPartners' into 'release'

fixes a bug where pointers are swapped and IDs are reassigned

See merge request !584
parents eec4b550 7adbca00
Branches
Tags
No related merge requests found
......@@ -249,22 +249,24 @@ func (s *Store) unmarshal(b []byte) error {
return err
}
for _, partnerID := range contacts {
for i := range contacts {
//load the contact separately to ensure pointers do not get swapped
partnerID := (&contacts[i]).DeepCopy()
// Load the relationship. The relationship handles adding the fingerprints via the
// context object
manager, err := loadManager(s.context, s.kv, &partnerID)
manager, err := loadManager(s.context, s.kv, partnerID)
if err != nil {
jww.FATAL.Panicf("Failed to load relationship for partner %s: %s",
&partnerID, err.Error())
partnerID, err.Error())
}
if !manager.GetPartnerID().Cmp(&partnerID){
if !manager.GetPartnerID().Cmp(partnerID){
jww.FATAL.Panicf("Loaded a manager with the wrong partner " +
"ID: \n\t loaded: %s \n\t present: %s",
&partnerID, manager.GetPartnerID())
partnerID, manager.GetPartnerID())
}
s.managers[partnerID] = manager
s.managers[*partnerID] = manager
}
s.dhPrivateKey, err = utility.LoadCyclicKey(s.kv, privKeyKey)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment