Skip to content

Commit 7083a1b

Browse files
authored
Merge 312be8a into 6efb9e8
2 parents 6efb9e8 + 312be8a commit 7083a1b

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

ydb/core/cms/cms_tx_load_state.cpp

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,17 @@
99

1010
namespace NKikimr::NCms {
1111

12+
namespace {
13+
14+
template<typename T>
15+
bool ParseFromStringSafe(const TString& input, T* output) {
16+
google::protobuf::TextFormat::Parser parser;
17+
parser.AllowUnknownField(true);
18+
return parser.ParseFromString(input, output);
19+
}
20+
21+
} // anonymous namespace
22+
1223
class TCms::TTxLoadState : public TTransactionBase<TCms> {
1324
public:
1425
TTxLoadState(TCms *self)
@@ -91,7 +102,7 @@ class TCms::TTxLoadState : public TTransactionBase<TCms> {
91102
request.Owner = owner;
92103
request.Order = order;
93104
request.Priority = priority;
94-
google::protobuf::TextFormat::ParseFromString(requestStr, &request.Request);
105+
ParseFromStringSafe(requestStr, &request.Request);
95106

96107
LOG_DEBUG(ctx, NKikimrServices::CMS, "Loaded request %s owned by %s: %s",
97108
id.data(), owner.data(), requestStr.data());
@@ -149,7 +160,7 @@ class TCms::TTxLoadState : public TTransactionBase<TCms> {
149160
permission.PermissionId = id;
150161
permission.RequestId = requestId;
151162
permission.Owner = owner;
152-
google::protobuf::TextFormat::ParseFromString(actionStr, &permission.Action);
163+
ParseFromStringSafe(actionStr, &permission.Action);
153164
permission.Deadline = TInstant::MicroSeconds(deadline);
154165

155166
LOG_DEBUG(ctx, NKikimrServices::CMS, "Loaded permission %s owned by %s valid until %s: %s",
@@ -185,7 +196,7 @@ class TCms::TTxLoadState : public TTransactionBase<TCms> {
185196
TNotificationInfo notification;
186197
notification.NotificationId = id;
187198
notification.Owner = owner;
188-
google::protobuf::TextFormat::ParseFromString(notificationStr, &notification.Notification);
199+
ParseFromStringSafe(notificationStr, &notification.Notification);
189200

190201
LOG_DEBUG(ctx, NKikimrServices::CMS, "Loaded notification %s owned by %s: %s",
191202
id.data(), owner.data(), notificationStr.data());

0 commit comments

Comments
 (0)