0
0
mirror of https://github.com/vim/vim.git synced 2025-08-26 20:03:41 -04:00

patch 9.1.0959: Coverity complains about type conversion

Problem:  Coverity complains about type conversion
          (after v9.1.0957)
Solution: use size_t instead of int for file length
          (Yegappan Lakshmanan)

closes: #16297

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Yegappan Lakshmanan 2024-12-25 10:20:51 +01:00 committed by Christian Brabandt
parent 9739086de2
commit 00d3459ea6
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09
6 changed files with 37 additions and 33 deletions

View File

@ -9700,7 +9700,7 @@ eval_vars(
char_u *s; char_u *s;
char_u *result; char_u *result;
char_u *resultbuf = NULL; char_u *resultbuf = NULL;
int resultlen; size_t resultlen;
buf_T *buf; buf_T *buf;
int valid = VALID_HEAD + VALID_PATH; // assume valid result int valid = VALID_HEAD + VALID_PATH; // assume valid result
int spec_idx; int spec_idx;
@ -9975,12 +9975,12 @@ eval_vars(
break; break;
} }
resultlen = (int)STRLEN(result); // length of new string resultlen = STRLEN(result); // length of new string
if (src[*usedlen] == '<') // remove the file name extension if (src[*usedlen] == '<') // remove the file name extension
{ {
++*usedlen; ++*usedlen;
if ((s = vim_strrchr(result, '.')) != NULL && s >= gettail(result)) if ((s = vim_strrchr(result, '.')) != NULL && s >= gettail(result))
resultlen = (int)(s - result); resultlen = s - result;
} }
else if (!skip_mod) else if (!skip_mod)
{ {

View File

@ -27,7 +27,7 @@
* Returns OK on success, FAIL on failure. * Returns OK on success, FAIL on failure.
*/ */
static int static int
get_short_pathname(char_u **fnamep, char_u **bufp, int *fnamelen) get_short_pathname(char_u **fnamep, char_u **bufp, size_t *fnamelen)
{ {
int l, len; int l, len;
WCHAR *newbuf; WCHAR *newbuf;
@ -80,7 +80,7 @@ get_short_pathname(char_u **fnamep, char_u **bufp, int *fnamelen)
vim_free(wfname); vim_free(wfname);
vim_free(newbuf); vim_free(newbuf);
*fnamelen = l == 0 ? l : (int)STRLEN(*bufp); *fnamelen = l == 0 ? l : STRLEN(*bufp);
return OK; return OK;
} }
@ -103,13 +103,14 @@ get_short_pathname(char_u **fnamep, char_u **bufp, int *fnamelen)
shortpath_for_invalid_fname( shortpath_for_invalid_fname(
char_u **fname, char_u **fname,
char_u **bufp, char_u **bufp,
int *fnamelen) size_t *fnamelen)
{ {
char_u *short_fname, *save_fname, *pbuf_unused; char_u *short_fname, *save_fname, *pbuf_unused;
char_u *endp, *save_endp; char_u *endp, *save_endp;
char_u ch; char_u ch;
int old_len, len; size_t old_len;
int new_len, sfx_len; size_t len;
size_t new_len, sfx_len;
int retval = OK; int retval = OK;
// Make a copy // Make a copy
@ -141,7 +142,7 @@ shortpath_for_invalid_fname(
ch = *endp; ch = *endp;
*endp = 0; *endp = 0;
short_fname = save_fname; short_fname = save_fname;
len = (int)STRLEN(short_fname) + 1; len = STRLEN(short_fname) + 1;
if (get_short_pathname(&short_fname, &pbuf_unused, &len) == FAIL) if (get_short_pathname(&short_fname, &pbuf_unused, &len) == FAIL)
{ {
retval = FAIL; retval = FAIL;
@ -164,7 +165,7 @@ shortpath_for_invalid_fname(
*/ */
// Compute the length of the new path. // Compute the length of the new path.
sfx_len = (int)(save_endp - endp) + 1; sfx_len = (save_endp - endp) + 1;
new_len = len + sfx_len; new_len = len + sfx_len;
*fnamelen = new_len; *fnamelen = new_len;
@ -211,9 +212,10 @@ theend:
shortpath_for_partial( shortpath_for_partial(
char_u **fnamep, char_u **fnamep,
char_u **bufp, char_u **bufp,
int *fnamelen) size_t *fnamelen)
{ {
int sepcount, len, tflen; int sepcount;
size_t len, tflen;
char_u *p; char_u *p;
char_u *pbuf, *tfname; char_u *pbuf, *tfname;
int hasTilde; int hasTilde;
@ -232,7 +234,7 @@ shortpath_for_partial(
else else
pbuf = tfname = FullName_save(*fnamep, FALSE); pbuf = tfname = FullName_save(*fnamep, FALSE);
len = tflen = (int)STRLEN(tfname); len = tflen = STRLEN(tfname);
if (get_short_pathname(&tfname, &pbuf, &len) == FAIL) if (get_short_pathname(&tfname, &pbuf, &len) == FAIL)
return FAIL; return FAIL;
@ -273,7 +275,7 @@ shortpath_for_partial(
// Copy in the string - p indexes into tfname - allocated at pbuf // Copy in the string - p indexes into tfname - allocated at pbuf
vim_free(*bufp); vim_free(*bufp);
*fnamelen = (int)STRLEN(p); *fnamelen = STRLEN(p);
*bufp = pbuf; *bufp = pbuf;
*fnamep = p; *fnamep = p;
@ -295,7 +297,7 @@ modify_fname(
size_t *usedlen, // characters after src that are used size_t *usedlen, // characters after src that are used
char_u **fnamep, // file name so far char_u **fnamep, // file name so far
char_u **bufp, // buffer for allocated file name or NULL char_u **bufp, // buffer for allocated file name or NULL
int *fnamelen) // length of fnamep size_t *fnamelen) // length of fnamep
{ {
int valid = 0; int valid = 0;
char_u *tail; char_u *tail;
@ -486,7 +488,7 @@ repeat:
} }
tail = gettail(*fnamep); tail = gettail(*fnamep);
*fnamelen = (int)STRLEN(*fnamep); *fnamelen = STRLEN(*fnamep);
// ":h" - head, remove "/file_name", can be repeated // ":h" - head, remove "/file_name", can be repeated
// Don't remove the first "/" or "c:\" // Don't remove the first "/" or "c:\"
@ -497,7 +499,7 @@ repeat:
s = get_past_head(*fnamep); s = get_past_head(*fnamep);
while (tail > s && after_pathsep(s, tail)) while (tail > s && after_pathsep(s, tail))
MB_PTR_BACK(*fnamep, tail); MB_PTR_BACK(*fnamep, tail);
*fnamelen = (int)(tail - *fnamep); *fnamelen = tail - *fnamep;
#ifdef VMS #ifdef VMS
if (*fnamelen > 0) if (*fnamelen > 0)
*fnamelen += 1; // the path separator is part of the path *fnamelen += 1; // the path separator is part of the path
@ -537,7 +539,7 @@ repeat:
// Copy the string if it is shortened by :h and when it wasn't copied // Copy the string if it is shortened by :h and when it wasn't copied
// yet, because we are going to change it in place. Avoids changing // yet, because we are going to change it in place. Avoids changing
// the buffer name for "%:8". // the buffer name for "%:8".
if (*fnamelen < (int)STRLEN(*fnamep) || *fnamep == fname_start) if (*fnamelen < STRLEN(*fnamep) || *fnamep == fname_start)
{ {
p = vim_strnsave(*fnamep, *fnamelen); p = vim_strnsave(*fnamep, *fnamelen);
if (p == NULL) if (p == NULL)
@ -555,7 +557,7 @@ repeat:
} }
else else
{ {
int l = *fnamelen; size_t l = *fnamelen;
// Simple case, already have the full-name. // Simple case, already have the full-name.
// Nearly always shorter, so try first time. // Nearly always shorter, so try first time.
@ -578,7 +580,7 @@ repeat:
if (src[*usedlen] == ':' && src[*usedlen + 1] == 't') if (src[*usedlen] == ':' && src[*usedlen + 1] == 't')
{ {
*usedlen += 2; *usedlen += 2;
*fnamelen -= (int)(tail - *fnamep); *fnamelen -= tail - *fnamep;
*fnamep = tail; *fnamep = tail;
} }
@ -601,7 +603,7 @@ repeat:
{ {
if (s > tail) if (s > tail)
{ {
*fnamelen += (int)(*fnamep - (s + 1)); *fnamelen += (*fnamep - (s + 1));
*fnamep = s + 1; *fnamep = s + 1;
#ifdef VMS #ifdef VMS
// cut version from the extension // cut version from the extension
@ -623,7 +625,7 @@ repeat:
if (limit < tail) if (limit < tail)
limit = tail; limit = tail;
if (s > limit) // remove one extension if (s > limit) // remove one extension
*fnamelen = (int)(s - *fnamep); *fnamelen = s - *fnamep;
} }
*usedlen += 2; *usedlen += 2;
} }
@ -675,7 +677,7 @@ repeat:
if (s != NULL) if (s != NULL)
{ {
*fnamep = s; *fnamep = s;
*fnamelen = (int)slen; *fnamelen = slen;
vim_free(*bufp); vim_free(*bufp);
*bufp = s; *bufp = s;
didit = TRUE; didit = TRUE;
@ -706,7 +708,7 @@ repeat:
return -1; return -1;
vim_free(*bufp); vim_free(*bufp);
*bufp = *fnamep = p; *bufp = *fnamep = p;
*fnamelen = (int)STRLEN(p); *fnamelen = STRLEN(p);
*usedlen += 2; *usedlen += 2;
} }
@ -1041,7 +1043,7 @@ f_fnamemodify(typval_T *argvars, typval_T *rettv)
char_u *fname; char_u *fname;
char_u *mods; char_u *mods;
size_t usedlen = 0; size_t usedlen = 0;
int len = 0; size_t len = 0;
char_u *fbuf = NULL; char_u *fbuf = NULL;
char_u buf[NUMBUFLEN]; char_u buf[NUMBUFLEN];
@ -1056,7 +1058,7 @@ f_fnamemodify(typval_T *argvars, typval_T *rettv)
fname = NULL; fname = NULL;
else else
{ {
len = (int)STRLEN(fname); len = STRLEN(fname);
if (mods != NULL && *mods != NUL) if (mods != NULL && *mods != NUL)
(void)modify_fname(mods, FALSE, &usedlen, &fname, &fbuf, &len); (void)modify_fname(mods, FALSE, &usedlen, &fname, &fbuf, &len);
} }
@ -2735,13 +2737,13 @@ home_replace(
if (homedir_env != NULL && *homedir_env == '~') if (homedir_env != NULL && *homedir_env == '~')
{ {
size_t usedlen = 0; size_t usedlen = 0;
int flen; size_t flen;
char_u *fbuf = NULL; char_u *fbuf = NULL;
flen = (int)STRLEN(homedir_env); flen = STRLEN(homedir_env);
(void)modify_fname((char_u *)":p", FALSE, &usedlen, (void)modify_fname((char_u *)":p", FALSE, &usedlen,
&homedir_env, &fbuf, &flen); &homedir_env, &fbuf, &flen);
flen = (int)STRLEN(homedir_env); flen = STRLEN(homedir_env);
if (flen > 0 && vim_ispathsep(homedir_env[flen - 1])) if (flen > 0 && vim_ispathsep(homedir_env[flen - 1]))
// Remove the trailing / that is added to a directory. // Remove the trailing / that is added to a directory.
homedir_env[flen - 1] = NUL; homedir_env[flen - 1] = NUL;

View File

@ -540,7 +540,7 @@ cs_add_common(
char *fname2 = NULL; char *fname2 = NULL;
char *ppath = NULL; char *ppath = NULL;
int i; int i;
int len; size_t len;
size_t usedlen = 0; size_t usedlen = 0;
char_u *fbuf = NULL; char_u *fbuf = NULL;
@ -549,7 +549,7 @@ cs_add_common(
goto add_err; goto add_err;
expand_env((char_u *)arg1, (char_u *)fname, MAXPATHL); expand_env((char_u *)arg1, (char_u *)fname, MAXPATHL);
len = (int)STRLEN(fname); len = STRLEN(fname);
fbuf = (char_u *)fname; fbuf = (char_u *)fname;
(void)modify_fname((char_u *)":p", FALSE, &usedlen, (void)modify_fname((char_u *)":p", FALSE, &usedlen,
(char_u **)&fname, &fbuf, &len); (char_u **)&fname, &fbuf, &len);

View File

@ -8452,7 +8452,7 @@ vimrc_found(char_u *fname, char_u *envname)
} }
#endif #endif
else else
(void)modify_fname((char_u *)":h", FALSE, &usedlen, &p, &fbuf, (int *)&len); (void)modify_fname((char_u *)":h", FALSE, &usedlen, &p, &fbuf, &len);
if (p != NULL) if (p != NULL)
{ {

View File

@ -1,5 +1,5 @@
/* filepath.c */ /* filepath.c */
int modify_fname(char_u *src, int tilde_file, size_t *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen); int modify_fname(char_u *src, int tilde_file, size_t *usedlen, char_u **fnamep, char_u **bufp, size_t *fnamelen);
void shorten_dir(char_u *str); void shorten_dir(char_u *str);
int file_is_readable(char_u *fname); int file_is_readable(char_u *fname);
void f_chdir(typval_T *argvars, typval_T *rettv); void f_chdir(typval_T *argvars, typval_T *rettv);

View File

@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
959,
/**/ /**/
958, 958,
/**/ /**/