@@ -422,31 +422,42 @@ ngx_http_auth_jwt_create_loc_conf(ngx_conf_t *cf)
422
422
static ngx_int_t
423
423
loadAuthKey (ngx_conf_t * cf , ngx_http_auth_jwt_loc_conf_t * conf ) {
424
424
FILE * keyFile = fopen ((const char * )conf -> auth_jwt_keyfile_path .data , "rb" );
425
+ unsigned long keySize ;
426
+ unsigned long keySizeRead ;
425
427
426
428
// Check if file exists or is correctly opened
427
429
if (keyFile == NULL )
428
430
{
429
- ngx_log_error (NGX_LOG_ERR , cf -> log , 0 , "failed to open pub key file" );
431
+ ngx_log_error (NGX_LOG_ERR , cf -> log , 0 , "failed to open public key file" );
430
432
return NGX_ERROR ;
431
433
}
432
434
433
435
// Read file length
434
436
fseek (keyFile , 0 , SEEK_END );
435
- long keySize = ftell (keyFile );
437
+ keySize = ftell (keyFile );
436
438
fseek (keyFile , 0 , SEEK_SET );
437
439
438
440
if (keySize == 0 )
439
441
{
440
- ngx_log_error (NGX_LOG_ERR , cf -> log , 0 , "invalid key file size, check the key file " );
442
+ ngx_log_error (NGX_LOG_ERR , cf -> log , 0 , "invalid public key file size of 0 " );
441
443
return NGX_ERROR ;
442
444
}
443
445
444
446
conf -> _auth_jwt_keyfile .data = ngx_palloc (cf -> pool , keySize );
445
- fread (conf -> _auth_jwt_keyfile .data , 1 , keySize , keyFile );
446
- conf -> _auth_jwt_keyfile .len = (int )keySize ;
447
-
447
+ keySizeRead = fread (conf -> _auth_jwt_keyfile .data , 1 , keySize , keyFile );
448
448
fclose (keyFile );
449
- return NGX_OK ;
449
+
450
+ if (keySizeRead == keySize )
451
+ {
452
+ conf -> _auth_jwt_keyfile .len = (int )keySize ;
453
+
454
+ return NGX_OK ;
455
+ }
456
+ else {
457
+ ngx_log_error (NGX_LOG_ERR , cf -> log , 0 , "public key size %i does not match expected size of %i" , keySizeRead , keySize );
458
+
459
+ return NGX_ERROR ;
460
+ }
450
461
}
451
462
452
463
static char *
0 commit comments