Skip to content

Commit e33fa95

Browse files
committed
treewide: fix all ignored errors
Signed-off-by: Sumner Evans <[email protected]>
1 parent af261c5 commit e33fa95

File tree

7 files changed

+55
-20
lines changed

7 files changed

+55
-20
lines changed

pkg/libsignalgo/groupsecretparams.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,13 @@ import (
3131

3232
type Randomness [C.SignalRANDOMNESS_LEN]byte
3333

34-
func GenerateRandomness() (Randomness, error) {
34+
func GenerateRandomness() Randomness {
3535
var randomness Randomness
3636
_, err := rand.Read(randomness[:])
37-
return randomness, err
37+
if err != nil {
38+
panic(err)
39+
}
40+
return randomness
3841
}
3942

4043
type GroupMasterKey [C.SignalGROUP_MASTER_KEY_LEN]byte
@@ -46,11 +49,7 @@ type UUIDCiphertext [C.SignalUUID_CIPHERTEXT_LEN]byte
4649
type ProfileKeyCiphertext [C.SignalPROFILE_KEY_CIPHERTEXT_LEN]byte
4750

4851
func GenerateGroupSecretParams() (GroupSecretParams, error) {
49-
randomness, err := GenerateRandomness()
50-
if err != nil {
51-
return GroupSecretParams{}, err
52-
}
53-
return GenerateGroupSecretParamsWithRandomness(randomness)
52+
return GenerateGroupSecretParamsWithRandomness(GenerateRandomness())
5453
}
5554

5655
func GenerateGroupSecretParamsWithRandomness(randomness Randomness) (GroupSecretParams, error) {

pkg/signalmeow/groups.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,10 +173,9 @@ func (cli *Client) GetAuthorizationForToday(ctx context.Context, masterKey libsi
173173
zlog.Err(err).Msg("DeriveGroupSecretParamsFromMasterKey error")
174174
return nil, err
175175
}
176-
randomness, err := libsignalgo.GenerateRandomness()
177176
authCredentialPresentation, err := libsignalgo.CreateAuthCredentialWithPniPresentation(
178177
prodServerPublicParams,
179-
randomness,
178+
libsignalgo.GenerateRandomness(),
180179
groupSecretParams,
181180
*authCredential,
182181
)

pkg/signalmeow/keys.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ func (cli *Client) GenerateAndRegisterPreKeys(ctx context.Context, uuidKind type
9595
// Mark prekeys as registered
9696
// (kyber prekeys don't have "mark as uploaded" we just assume they always are)
9797
lastPreKeyID, err := preKeys[len(preKeys)-1].GetID()
98+
if err != nil {
99+
return fmt.Errorf("failed to get last prekey ID: %w", err)
100+
}
98101
err = cli.Store.PreKeyStoreExtras.MarkPreKeysAsUploaded(ctx, uuidKind, lastPreKeyID)
99102

100103
if err != nil {
@@ -316,6 +319,9 @@ func (cli *Client) FetchAndProcessPreKey(ctx context.Context, theirUUID uuid.UUI
316319
}
317320

318321
rawIdentityKey, err := addBase64PaddingAndDecode(prekeyResponse.IdentityKey)
322+
if err != nil {
323+
return fmt.Errorf("error decoding identity key: %w", err)
324+
}
319325
identityKey, err := libsignalgo.DeserializeIdentityKey([]byte(rawIdentityKey))
320326
if err != nil {
321327
zlog.Err(err).Msg("Error deserializing identity key")
@@ -372,6 +378,9 @@ func (cli *Client) FetchAndProcessPreKey(ctx context.Context, theirUUID uuid.UUI
372378
return err
373379
}
374380
kyberPreKeySignature, err = addBase64PaddingAndDecode(d.PQPreKey.Signature)
381+
if err != nil {
382+
return fmt.Errorf("error decoding kyber prekey signature: %w", err)
383+
}
375384
}
376385

377386
rawSignature, err := addBase64PaddingAndDecode(d.SignedPreKey.Signature)

pkg/signalmeow/provisioning.go

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -186,10 +186,19 @@ func PerformProvisioning(incomingCtx context.Context, deviceStore store.DeviceSt
186186

187187
// Store identity keys?
188188
address, err := libsignalgo.NewUUIDAddress(device.ACI, uint(device.DeviceID))
189+
if err != nil {
190+
c <- ProvisioningResponse{
191+
State: StateProvisioningError,
192+
Err: fmt.Errorf("error creating new address: %w", err),
193+
}
194+
return
195+
}
189196
_, err = device.IdentityStore.SaveIdentityKey(ctx, address, device.ACIIdentityKeyPair.GetIdentityKey())
190197
if err != nil {
191-
zlog.Err(err).Msg("error saving identity key")
192-
c <- ProvisioningResponse{State: StateProvisioningError, Err: err}
198+
c <- ProvisioningResponse{
199+
State: StateProvisioningError,
200+
Err: fmt.Errorf("error saving identity key: %w", err),
201+
}
193202
return
194203
}
195204

@@ -202,8 +211,10 @@ func PerformProvisioning(incomingCtx context.Context, deviceStore store.DeviceSt
202211
// Store our profile key
203212
err = device.ProfileKeyStore.StoreProfileKey(ctx, data.ACI, profileKey)
204213
if err != nil {
205-
zlog.Err(err).Msg("error storing profile key")
206-
c <- ProvisioningResponse{State: StateProvisioningError, Err: err}
214+
c <- ProvisioningResponse{
215+
State: StateProvisioningError,
216+
Err: fmt.Errorf("error storing profile key: %w", err),
217+
}
207218
return
208219
}
209220

@@ -214,11 +225,20 @@ func PerformProvisioning(incomingCtx context.Context, deviceStore store.DeviceSt
214225
// TODO hacky client construction
215226
cli := &Client{Store: device}
216227
err = cli.GenerateAndRegisterPreKeys(ctx, types.UUIDKindACI)
228+
if err != nil {
229+
c <- ProvisioningResponse{
230+
State: StateProvisioningError,
231+
Err: fmt.Errorf("error generating and registering ACI prekeys: %w", err),
232+
}
233+
return
234+
}
217235
err = cli.GenerateAndRegisterPreKeys(ctx, types.UUIDKindPNI)
218236

219237
if err != nil {
220-
zlog.Err(err).Msg("error generating and registering prekeys")
221-
c <- ProvisioningResponse{State: StateProvisioningError, Err: err}
238+
c <- ProvisioningResponse{
239+
State: StateProvisioningError,
240+
Err: fmt.Errorf("error generating and registering PNI prekeys: %w", err),
241+
}
222242
return
223243
}
224244

@@ -248,6 +268,9 @@ func startProvisioning(ctx context.Context, ws *websocket.Conn, provisioningCiph
248268
// Decode provisioning UUID
249269
provisioningUuid := &signalpb.ProvisioningUuid{}
250270
err = proto.Unmarshal(msg.Request.Body, provisioningUuid)
271+
if err != nil {
272+
return "", fmt.Errorf("failed to unmarshal provisioning UUID: %w", err)
273+
}
251274

252275
// Create provisioning URL
253276
bytesKey, _ := pubKey.Serialize()

pkg/signalmeow/sending.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,9 @@ func (cli *Client) buildSSMessageToSend(ctx context.Context, recipientAddress *l
274274
cli.Store.SessionStore,
275275
cli.Store.IdentityStore,
276276
)
277+
if err != nil {
278+
return 0, nil, err
279+
}
277280
envelopeType = int(signalpb.Envelope_UNIDENTIFIED_SENDER)
278281

279282
return envelopeType, encryptedPayload, nil

pkg/signalmeow/store/device.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ func (d *Device) ClearDeviceKeys(ctx context.Context) error {
7474
return nil
7575
}
7676
err := d.PreKeyStoreExtras.DeleteAllPreKeys(ctx)
77+
if err != nil {
78+
return err
79+
}
7780
err = d.SessionStoreExtras.RemoveAllSessions(ctx)
7881
return err
7982
}

portal.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -682,13 +682,11 @@ func (portal *Portal) sendSignalMessage(ctx context.Context, msg *signalpb.Conte
682682
log.Debug().Msg("Sending event to Signal")
683683

684684
// Check to see if portal.ChatID is a standard UUID (with dashes)
685-
var err error
686685
if portal.IsPrivateChat() {
687686
// this is a 1:1 chat
688687
result := sender.Client.SendMessage(ctx, portal.UserID(), msg)
689688
if !result.WasSuccessful {
690-
err = result.FailedSendResult.Error
691-
log.Err(err).Msg("Error sending event to Signal")
689+
return result.Error
692690
}
693691
} else {
694692
// this is a group chat
@@ -715,14 +713,15 @@ func (portal *Portal) sendSignalMessage(ctx context.Context, msg *signalpb.Conte
715713
log.Debug().Msg("No successes or failures - Probably sent to myself")
716714
} else if len(result.SuccessfullySentTo) == 0 {
717715
log.Error().Msg("Failed to send event to all members of Signal group")
718-
err = errors.New("failed to send to any members of Signal group")
716+
return errors.New("failed to send to any members of Signal group")
717+
719718
} else if len(result.SuccessfullySentTo) < totalRecipients {
720719
log.Warn().Msg("Only sent event to some members of Signal group")
721720
} else {
722721
log.Debug().Msg("Sent event to all members of Signal group")
723722
}
724723
}
725-
return err
724+
return nil
726725
}
727726

728727
func (portal *Portal) sendMessageStatusCheckpointSuccess(ctx context.Context, evt *event.Event) {

0 commit comments

Comments
 (0)