Skip to content

Commit cf62ce8

Browse files
authored
Fix cli vulnerabilities 3 (ydb-platform#16765) (ydb-platform#16863)
1 parent b94a17b commit cf62ce8

File tree

2 files changed

+13
-21
lines changed

2 files changed

+13
-21
lines changed

ydb/library/benchmarks/gen/tpcds-dbgen/tdefs.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -172,21 +172,21 @@ getSimpleTdefsByNumber(int nTable)
172172
tdef *
173173
getTdefsByNumber(int nTable)
174174
{
175-
if (is_set("UPDATE") && is_set("VALIDATE"))
175+
if (is_set("UPDATE") && is_set("VALIDATE")
176+
&& nTable >= S_BRAND && (s_tdefs[nTable - S_BRAND].flags & FL_PASSTHRU))
176177
{
177-
checkTdefsSize(nTable);
178-
if (s_tdefs[nTable].flags & FL_PASSTHRU)
178+
checkTdefsSize(nTable - S_BRAND);
179+
int wtdefsIndex = -1;
180+
switch(nTable)
179181
{
180-
switch(nTable + S_BRAND)
181-
{
182-
case S_CATALOG_PAGE: nTable = CATALOG_PAGE; break;
183-
case S_CUSTOMER_ADDRESS: nTable = CUSTOMER_ADDRESS; break;
184-
case S_PROMOTION: nTable = PROMOTION; break;
185-
}
182+
case S_CATALOG_PAGE: wtdefsIndex = CATALOG_PAGE; break;
183+
case S_CUSTOMER_ADDRESS: wtdefsIndex = CUSTOMER_ADDRESS; break;
184+
case S_PROMOTION: wtdefsIndex = PROMOTION; break;
185+
}
186+
// Use w_tdefs only if we decreased the index
187+
if (wtdefsIndex != -1) {
186188
return(&w_tdefs[nTable]);
187189
}
188-
else
189-
return(&s_tdefs[nTable]);
190190
}
191191

192192
return(getSimpleTdefsByNumber(nTable));

ydb/library/benchmarks/gen/tpcds-dbgen/w_datetbl.c

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ mk_w_date (void * row, ds_key_t index)
100100
mk_bkey(&r->d_date_id[0], nTemp, D_DATE_ID);
101101
jtodt (&temp_date, nTemp);
102102
r->d_year = temp_date.year;
103-
r->d_dow = set_dow (&temp_date);
103+
r->d_dow = set_dow (&temp_date) % 7;
104104
r->d_moy = temp_date.month;
105105
r->d_dom = temp_date.day;
106106
/* set the sequence counts; assumes that the date table starts on a year boundary */
@@ -113,10 +113,6 @@ mk_w_date (void * row, ds_key_t index)
113113
r->d_fy_year = r->d_year;
114114
r->d_fy_quarter_seq = r->d_quarter_seq;
115115
r->d_fy_week_seq = r->d_week_seq;
116-
if (r->d_dow >= 7) {
117-
INTERNAL("weekday_names array overflow");
118-
exit(EXIT_FAILURE);
119-
}
120116
r->d_day_name = weekday_names[r->d_dow + 1];
121117
dist_member (&r->d_holiday, "calendar", day_index, 8);
122118
if ((r->d_dow == 5) || (r->d_dow == 6))
@@ -281,7 +277,7 @@ vld_w_date(int nTable, ds_key_t kRow, int *Permutation)
281277
mk_bkey(&r->d_date_id[0], nTemp, D_DATE_ID);
282278
jtodt (&temp_date, nTemp);
283279
r->d_year = temp_date.year;
284-
r->d_dow = set_dow (&temp_date);
280+
r->d_dow = set_dow (&temp_date) % 7;
285281
r->d_moy = temp_date.month;
286282
r->d_dom = temp_date.day;
287283
/* set the sequence counts; assumes that the date table starts on a year boundary */
@@ -294,10 +290,6 @@ vld_w_date(int nTable, ds_key_t kRow, int *Permutation)
294290
r->d_fy_year = r->d_year;
295291
r->d_fy_quarter_seq = r->d_quarter_seq;
296292
r->d_fy_week_seq = r->d_week_seq;
297-
if (r->d_dow >= 7) {
298-
INTERNAL("weekday_names array overflow");
299-
exit(EXIT_FAILURE);
300-
}
301293
r->d_day_name = weekday_names[r->d_dow + 1];
302294
dist_member (&r->d_holiday, "calendar", day_index, 8);
303295
if ((r->d_dow == 5) || (r->d_dow == 6))

0 commit comments

Comments
 (0)