mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
refactor: avoid overflow by explicitly casting operand to a wider type
This commit is contained in:
parent
991e872d80
commit
db7fe34017
@ -4370,7 +4370,7 @@ static char_u *replace_makeprg(exarg_T *eap, char_u *p, char_u **cmdlinep)
|
||||
++i;
|
||||
}
|
||||
len = (int)STRLEN(p);
|
||||
new_cmdline = xmalloc(STRLEN(program) + i * (len - 2) + 1);
|
||||
new_cmdline = xmalloc(STRLEN(program) + (long)i * (len - 2) + 1);
|
||||
ptr = new_cmdline;
|
||||
while ((pos = (char_u *)strstr((char *)program, "$*")) != NULL) {
|
||||
i = (int)(pos - program);
|
||||
@ -6028,7 +6028,7 @@ static size_t uc_check_code(char_u *code, size_t len, char_u *buf, ucmd_T *cmd,
|
||||
break;
|
||||
}
|
||||
|
||||
case ct_MODS: {
|
||||
case ct_MODS:
|
||||
result = quote ? 2 : 0;
|
||||
if (buf != NULL) {
|
||||
if (quote) {
|
||||
@ -6044,7 +6044,6 @@ static size_t uc_check_code(char_u *code, size_t len, char_u *buf, ucmd_T *cmd,
|
||||
*buf = '"';
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case ct_REGISTER:
|
||||
result = eap->regname ? 1 : 0;
|
||||
|
@ -247,7 +247,7 @@ bhdr_T *mf_new(memfile_T *mfp, bool negative, unsigned page_count)
|
||||
} else { // need to allocate memory for this block
|
||||
// If the number of pages matches use the bhdr_T from the free list and
|
||||
// allocate the data.
|
||||
void *p = xmalloc(mfp->mf_page_size * page_count);
|
||||
void *p = xmalloc((size_t)mfp->mf_page_size * page_count);
|
||||
hp = mf_rem_free(mfp);
|
||||
hp->bh_data = p;
|
||||
}
|
||||
@ -269,7 +269,7 @@ bhdr_T *mf_new(memfile_T *mfp, bool negative, unsigned page_count)
|
||||
|
||||
// Init the data to all zero, to avoid reading uninitialized data.
|
||||
// This also avoids that the passwd file ends up in the swap file!
|
||||
(void)memset(hp->bh_data, 0, mfp->mf_page_size * page_count);
|
||||
(void)memset(hp->bh_data, 0, (unsigned long)mfp->mf_page_size * page_count);
|
||||
|
||||
return hp;
|
||||
}
|
||||
@ -528,7 +528,7 @@ bool mf_release_all(void)
|
||||
static bhdr_T *mf_alloc_bhdr(memfile_T *mfp, unsigned page_count)
|
||||
{
|
||||
bhdr_T *hp = xmalloc(sizeof(bhdr_T));
|
||||
hp->bh_data = xmalloc(mfp->mf_page_size * page_count);
|
||||
hp->bh_data = xmalloc((size_t)mfp->mf_page_size * page_count);
|
||||
hp->bh_page_count = page_count;
|
||||
return hp;
|
||||
}
|
||||
|
@ -4139,7 +4139,7 @@ long ml_find_line_or_offset(buf_T *buf, linenr_T lnum, long *offp, bool no_ff)
|
||||
|| (offset != 0
|
||||
&& offset > size +
|
||||
buf->b_ml.ml_chunksize[curix].mlcs_totalsize
|
||||
+ ffdos * buf->b_ml.ml_chunksize[curix].mlcs_numlines))) {
|
||||
+ (long)ffdos * buf->b_ml.ml_chunksize[curix].mlcs_numlines))) {
|
||||
curline += buf->b_ml.ml_chunksize[curix].mlcs_numlines;
|
||||
size += buf->b_ml.ml_chunksize[curix].mlcs_totalsize;
|
||||
if (offset && ffdos) {
|
||||
|
@ -4130,7 +4130,7 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool noc
|
||||
if (((wp->w_p_cuc
|
||||
&& (int)wp->w_virtcol >= VCOL_HLC - eol_hl_off
|
||||
&& (int)wp->w_virtcol <
|
||||
grid->Columns * (row - startrow + 1) + v
|
||||
(long)grid->Columns * (row - startrow + 1) + v
|
||||
&& lnum != wp->w_cursor.lnum)
|
||||
|| draw_color_col || line_attr_lowprio || line_attr
|
||||
|| diff_hlf != (hlf_T)0 || has_virttext)) {
|
||||
@ -6762,7 +6762,7 @@ void grid_clear_line(ScreenGrid *grid, unsigned off, int width, bool valid)
|
||||
|
||||
void grid_invalidate(ScreenGrid *grid)
|
||||
{
|
||||
(void)memset(grid->attrs, -1, grid->Rows * grid->Columns * sizeof(sattr_T));
|
||||
(void)memset(grid->attrs, -1, (long)grid->Rows * grid->Columns * sizeof(sattr_T));
|
||||
}
|
||||
|
||||
bool grid_invalid_row(ScreenGrid *grid, int row)
|
||||
|
Loading…
Reference in New Issue
Block a user