given:
size_t x; char *end, *privkey;
replace:
if (end - privkey < x)
with
if (end < privkey || (size_t)(end - privkey) < x)
This eliminates below warnings if built with gcc 5.4.0:
key.cpp: In function ‘int ec_privkey_import_der(const secp256k1_context, unsigned char, const unsigned char*, size_t)’: key.cpp:51:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (end - privkey < lenb) { ^ key.cpp:57:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (end - privkey < len) { ^ key.cpp:71:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (oslen > 32 || end - privkey < oslen) {