commit 8979a905cefe51e1defa798ca9ad938bff72c326
parent 66763fde44257f5366633282ba6124b166f250a5
Author: Jack Mordaunt <jackmordaunt.dev@gmail.com>
Date: Tue, 26 Mar 2024 14:48:56 +0800
lib/dynamic: nil guard function pointers
In the case of bad init we can avoid panicking.
Signed-off-by: Jack Mordaunt <jackmordaunt.dev@gmail.com>
Diffstat:
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/lib/dynamic/webp/encode_default.go b/lib/dynamic/webp/encode_default.go
@@ -3,6 +3,7 @@
package webp
import (
+ "fmt"
"image"
"io"
@@ -13,5 +14,8 @@ func encodeImpl(w io.Writer, m *image.NRGBA, quality float32) error {
if quality >= 1.0 {
return common.Encode(w, m, quality, wrappedLossless, WebPFree)
}
+ if WebPEncodeRGBA == nil || WebPFree == nil {
+ return fmt.Errorf("functions not initialized")
+ }
return common.Encode(w, m, quality, WebPEncodeRGBA, WebPFree)
}
diff --git a/lib/dynamic/webp/lib.go b/lib/dynamic/webp/lib.go
@@ -57,6 +57,9 @@ func Init() (err error) {
}
func DecodeImpl(buf []byte) (image.Image, error) {
+ if WebPDecodeRGBA == nil || WebPFree == nil {
+ return nil, fmt.Errorf("functions not initialized")
+ }
return common.Decode(buf, WebPDecodeRGBA, WebPFree)
}