if (type < 0 || type > CRYPTO_NUM_LOCKS)
if (type < 0 || type >= CRYPTO_NUM_LOCKS)
static void lock_dbg_cb(int mode, int type, const char *file, int line)	{	static int modes[CRYPTO_NUM_LOCKS]; /* = {0, 0, ... } */	const char *errstr = NULL;	int rw;		rw = mode & (CRYPTO_READ|CRYPTO_WRITE);	if (!((rw == CRYPTO_READ) || (rw == CRYPTO_WRITE)))		{		errstr = "invalid mode";		goto err;		}	if (type < 0 || type > CRYPTO_NUM_LOCKS)		{		errstr = "type out of bounds";		goto err;		}	if (mode & CRYPTO_LOCK)		{		if (modes[type])			{			errstr = "already locked";			/* must not happen in a single-threaded program			 * (would deadlock) */			goto err;			}		modes[type] = rw;		}	else if (mode & CRYPTO_UNLOCK)		{		if (!modes[type])			{			errstr = "not locked";			goto err;			}				if (modes[type] != rw)			{			errstr = (rw == CRYPTO_READ) ?				"CRYPTO_r_unlock on write lock" :				"CRYPTO_w_unlock on read lock";			}		modes[type] = 0;		}	else		{		errstr = "invalid mode";		goto err;		} err:	if (errstr)		{		/* we cannot use bio_err here */		fprintf(stderr, "openssl (lock_dbg_cb): %s (mode=%d, type=%d) at %s:%d\n",			errstr, mode, type, file, line);		}	}