Skip to content

Commit ec1e6f3

Browse files
TreeHunter9Artyom Ivanov
andauthored
Fix incorrect maximum size when reading dbb parameter values in SHOW DATABASE (#8413)
* Fix incorrect maximum size when reading dbb parameter values Incorrect maximum size occur for isc_info_oldest_transaction, isc_info_oldest_active, isc_info_oldest_snapshot, isc_info_next_transaction. Also change maximum size for all parameter values, so we don't get the same error in future. * Cast transaction number to correct type --------- Co-authored-by: Artyom Ivanov <[email protected]>
1 parent 5dee439 commit ec1e6f3

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

src/isql/show.epp

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -438,12 +438,12 @@ void SHOW_dbb_parameters(Firebird::IAttachment* db_handle,
438438
break;
439439

440440
case isc_info_page_size:
441-
value_out = p.getInt();
441+
value_out = p.getBigInt();
442442
isqlGlob.printf("PAGE_SIZE %" SQUADFORMAT"%s", value_out, separator);
443443
break;
444444

445445
case isc_info_db_size_in_pages:
446-
value_out = p.getInt();
446+
value_out = p.getBigInt();
447447
if (translate)
448448
{
449449
IUTILS_msg_get(NUMBER_PAGES, msg, SafeArg() << value_out);
@@ -454,7 +454,7 @@ void SHOW_dbb_parameters(Firebird::IAttachment* db_handle,
454454
break;
455455

456456
case fb_info_pages_used:
457-
value_out = p.getInt();
457+
value_out = p.getBigInt();
458458
if (translate)
459459
{
460460
IUTILS_msg_get(NUMBER_USED_PAGES, msg, SafeArg() << value_out);
@@ -465,7 +465,7 @@ void SHOW_dbb_parameters(Firebird::IAttachment* db_handle,
465465
break;
466466

467467
case fb_info_pages_free:
468-
value_out = p.getInt();
468+
value_out = p.getBigInt();
469469
if (translate)
470470
{
471471
IUTILS_msg_get(NUMBER_FREE_PAGES, msg, SafeArg() << value_out);
@@ -476,7 +476,7 @@ void SHOW_dbb_parameters(Firebird::IAttachment* db_handle,
476476
break;
477477

478478
case fb_info_crypt_state:
479-
value_out = p.getInt();
479+
value_out = p.getBigInt();
480480
if (translate)
481481
{
482482
Firebird::string s;
@@ -506,7 +506,7 @@ void SHOW_dbb_parameters(Firebird::IAttachment* db_handle,
506506
break;
507507

508508
case isc_info_sweep_interval:
509-
value_out = p.getInt();
509+
value_out = p.getBigInt();
510510
if (translate)
511511
{
512512
IUTILS_msg_get(SWEEP_INTERV, msg, SafeArg() << value_out);
@@ -517,32 +517,32 @@ void SHOW_dbb_parameters(Firebird::IAttachment* db_handle,
517517
break;
518518

519519
case isc_info_forced_writes:
520-
value_out = p.getInt();
520+
value_out = p.getBigInt();
521521
isqlGlob.printf("Forced Writes are %s%s", (value_out == 1 ? "ON" : "OFF"), separator);
522522
break;
523523

524524
case isc_info_oldest_transaction :
525-
value_out = p.getInt();
526-
isqlGlob.printf("Transaction - oldest = %" SQUADFORMAT"%s", value_out, separator);
525+
value_out = p.getBigInt();
526+
isqlGlob.printf("Transaction - oldest = %" UQUADFORMAT"%s", static_cast<TraNumber>(value_out), separator);
527527
break;
528528

529529
case isc_info_oldest_active :
530-
value_out = p.getInt();
531-
isqlGlob.printf("Transaction - oldest active = %" SQUADFORMAT"%s", value_out, separator);
530+
value_out = p.getBigInt();
531+
isqlGlob.printf("Transaction - oldest active = %" UQUADFORMAT"%s", static_cast<TraNumber>(value_out), separator);
532532
break;
533533

534534
case isc_info_oldest_snapshot :
535-
value_out = p.getInt();
536-
isqlGlob.printf("Transaction - oldest snapshot = %" SQUADFORMAT"%s", value_out, separator);
535+
value_out = p.getBigInt();
536+
isqlGlob.printf("Transaction - oldest snapshot = %" UQUADFORMAT"%s", static_cast<TraNumber>(value_out), separator);
537537
break;
538538

539539
case isc_info_next_transaction :
540-
value_out = p.getInt();
541-
isqlGlob.printf("Transaction - Next = %" SQUADFORMAT"%s", value_out, separator);
540+
value_out = p.getBigInt();
541+
isqlGlob.printf("Transaction - Next = %" UQUADFORMAT"%s", static_cast<TraNumber>(value_out), separator);
542542
break;
543543

544544
case isc_info_base_level:
545-
value_out = p.getInt();
545+
value_out = p.getBigInt();
546546
if (translate)
547547
{
548548
IUTILS_msg_get(BASE_LEVEL, msg, SafeArg() << value_out);
@@ -553,21 +553,21 @@ void SHOW_dbb_parameters(Firebird::IAttachment* db_handle,
553553
break;
554554

555555
case isc_info_limbo:
556-
value_out = p.getInt();
556+
value_out = p.getBigInt();
557557
if (translate)
558558
{
559559
IUTILS_msg_get(LIMBO, msg, SafeArg() << value_out);
560560
isqlGlob.printf("%s%s", msg, separator);
561561
}
562562
else
563-
isqlGlob.printf("Transaction in limbo = %" SQUADFORMAT"%s", value_out, separator);
563+
isqlGlob.printf("Transaction in limbo = %" UQUADFORMAT"%s", static_cast<TraNumber>(value_out), separator);
564564
break;
565565

566566
case isc_info_ods_version:
567567
isqlGlob.major_ods = p.getInt();
568568
break;
569569
case isc_info_ods_minor_version:
570-
value_out = p.getInt();
570+
value_out = p.getBigInt();
571571
isqlGlob.printf("ODS = %" SLONGFORMAT".%" SQUADFORMAT"%s",
572572
(SLONG) isqlGlob.major_ods, value_out, separator);
573573
break;
@@ -578,7 +578,7 @@ void SHOW_dbb_parameters(Firebird::IAttachment* db_handle,
578578
break;
579579

580580
case fb_info_protocol_version:
581-
value_out = p.getInt();
581+
value_out = p.getBigInt();
582582
if (value_out)
583583
isqlGlob.printf("Protocol version = %" SQUADFORMAT"%s", value_out, separator);
584584
else
@@ -656,7 +656,7 @@ void SHOW_dbb_parameters(Firebird::IAttachment* db_handle,
656656

657657
case fb_info_replica_mode:
658658
{
659-
value_out = p.getInt();
659+
value_out = p.getBigInt();
660660
const char* mode =
661661
(value_out == fb_info_replica_none) ? "NONE" :
662662
(value_out == fb_info_replica_read_only) ? "READ_ONLY" :

0 commit comments

Comments
 (0)