a6c4ed
diff --git a/lib/cryptohi/seckey.c b/lib/cryptohi/seckey.c
a6c4ed
--- a/lib/cryptohi/seckey.c
a6c4ed
+++ b/lib/cryptohi/seckey.c
a6c4ed
@@ -639,6 +639,11 @@
a6c4ed
                     return pubk;
a6c4ed
                 break;
a6c4ed
             case SEC_OID_ANSIX962_EC_PUBLIC_KEY:
a6c4ed
+                /* A basic sanity check on inputs. */
a6c4ed
+                if (spki->algorithm.parameters.len == 0 || newOs.len == 0) {
a6c4ed
+                    PORT_SetError(SEC_ERROR_INPUT_LEN);
a6c4ed
+                    break;
a6c4ed
+                }
a6c4ed
                 pubk->keyType = ecKey;
a6c4ed
                 pubk->u.ec.size = 0;