Skip to content

Commit 476bbb1

Browse files
committed
[sc-lib] Add channel number checks
1 parent ffeeef0 commit 476bbb1

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

src/Ic.cxx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Ic::Ic(std::string cardId, int linkId)
7474

7575
void Ic::init(const roc::Parameters::CardIdType& cardId, int linkId)
7676
{
77-
if (mLink.linkId >= CRU_NUM_LINKS) {
77+
if (linkId >= CRU_NUM_LINKS) {
7878
BOOST_THROW_EXCEPTION(
7979
IcException() << ErrorInfo::Message("Maximum link number exceeded"));
8080
}
@@ -99,6 +99,11 @@ void Ic::init(const roc::Parameters::CardIdType& cardId, int linkId)
9999

100100
void Ic::setChannel(int gbtChannel)
101101
{
102+
if (gbtChannel >= CRU_NUM_LINKS) {
103+
BOOST_THROW_EXCEPTION(
104+
IcException() << ErrorInfo::Message("Maximum link number exceeded"));
105+
}
106+
102107
mLink.linkId = gbtChannel;
103108
mLink.rawLinkId = mLink.serialId.getEndpoint() * 12 + gbtChannel;
104109
barWrite(sc_regs::SC_LINK.index, mLink.rawLinkId);

src/Sca.cxx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,11 @@ void Sca::init(const roc::Parameters::CardIdType& cardId, int linkId)
7878

7979
void Sca::setChannel(int gbtChannel)
8080
{
81+
if (gbtChannel >= CRU_NUM_LINKS) {
82+
BOOST_THROW_EXCEPTION(
83+
ScaException() << ErrorInfo::Message("Maximum link number exceeded"));
84+
}
85+
8186
mLink.linkId = gbtChannel;
8287
mLink.rawLinkId = mLink.serialId.getEndpoint() * 12 + gbtChannel;
8388
barWrite(sc_regs::SC_LINK.index, mLink.rawLinkId);

src/Swt.cxx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Swt::Swt(std::string cardId, int linkId)
5959

6060
void Swt::init(const roc::Parameters::CardIdType& cardId, int linkId)
6161
{
62-
if (mLink.linkId >= CRU_NUM_LINKS) {
62+
if (linkId >= CRU_NUM_LINKS) {
6363
BOOST_THROW_EXCEPTION(
6464
SwtException() << ErrorInfo::Message("Maximum link number exceeded"));
6565
}
@@ -81,6 +81,11 @@ void Swt::init(const roc::Parameters::CardIdType& cardId, int linkId)
8181

8282
void Swt::setChannel(int gbtChannel)
8383
{
84+
if (gbtChannel >= CRU_NUM_LINKS) {
85+
BOOST_THROW_EXCEPTION(
86+
SwtException() << ErrorInfo::Message("Maximum link number exceeded"));
87+
}
88+
8489
mLink.linkId = gbtChannel;
8590
mLink.rawLinkId = mLink.serialId.getEndpoint() * 12 + gbtChannel;
8691
barWrite(sc_regs::SC_LINK.index, mLink.rawLinkId);

0 commit comments

Comments
 (0)