Go: improve error handling
This commit is contained in:
parent
bcb24af926
commit
d8171b9ac4
11
pdf/pdf.go
11
pdf/pdf.go
|
@ -766,8 +766,6 @@ func (u *Updater) Version(root *Object) int {
|
||||||
|
|
||||||
// Get retrieves an object by its number and generation--may return
|
// Get retrieves an object by its number and generation--may return
|
||||||
// Nil or End with an error.
|
// Nil or End with an error.
|
||||||
//
|
|
||||||
// TODO(p): We should fix all uses of this not to eat the error.
|
|
||||||
func (u *Updater) Get(n, generation uint) (Object, error) {
|
func (u *Updater) Get(n, generation uint) (Object, error) {
|
||||||
if n >= u.xrefSize {
|
if n >= u.xrefSize {
|
||||||
return New(Nil), nil
|
return New(Nil), nil
|
||||||
|
@ -907,8 +905,8 @@ func NewDate(ts time.Time) Object {
|
||||||
// GetFirstPage retrieves the first page of the given page (sub)tree reference,
|
// GetFirstPage retrieves the first page of the given page (sub)tree reference,
|
||||||
// or returns a Nil object if unsuccessful.
|
// or returns a Nil object if unsuccessful.
|
||||||
func (u *Updater) GetFirstPage(nodeN, nodeGeneration uint) Object {
|
func (u *Updater) GetFirstPage(nodeN, nodeGeneration uint) Object {
|
||||||
obj, _ := u.Get(nodeN, nodeGeneration)
|
obj, err := u.Get(nodeN, nodeGeneration)
|
||||||
if obj.Kind != Dict {
|
if err != nil || obj.Kind != Dict {
|
||||||
return New(Nil)
|
return New(Nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1128,7 +1126,10 @@ func Sign(document []byte, key crypto.PrivateKey, certs []*x509.Certificate,
|
||||||
if !ok || rootRef.Kind != Reference {
|
if !ok || rootRef.Kind != Reference {
|
||||||
return nil, errors.New("trailer does not contain a reference to Root")
|
return nil, errors.New("trailer does not contain a reference to Root")
|
||||||
}
|
}
|
||||||
root, _ := pdf.Get(rootRef.N, rootRef.Generation)
|
root, err := pdf.Get(rootRef.N, rootRef.Generation)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("Root dictionary retrieval failed: %s", err)
|
||||||
|
}
|
||||||
if root.Kind != Dict {
|
if root.Kind != Dict {
|
||||||
return nil, errors.New("invalid Root dictionary reference")
|
return nil, errors.New("invalid Root dictionary reference")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue