[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Tinycc-devel] Small patch
From: |
Thomas Preud'homme |
Subject: |
Re: [Tinycc-devel] Small patch |
Date: |
Thu, 31 Jan 2013 12:07:48 +0100 |
User-agent: |
KMail/1.13.7 (Linux/3.2.0-4-amd64; KDE/4.8.4; x86_64; ; ) |
Le jeudi 31 janvier 2013 02:19:38, Domingo Alvarez Duarte a écrit :
> Here is some that I found simple to make:
>
> Author: mingodad <address@hidden> 2013-01-31 01:17:50
> Committer: mingodad <address@hidden> 2013-01-31 01:17:50
> Parent: 1b1e7ee1fd2f269872128dc5e8b830bd55dfa80c (Fix cross-compilation
> out-of-tree build)
> Branch: vio_patch
> Follows: release_0_9_25
> Precedes:
>
> Alerts found using Coverity Scan
>
> ----------------------------------- libtcc.c
> -----------------------------------
> index b0a9b1a..69d9e0d 100644
> @@ -479,8 +479,7 @@ ST_FUNC void put_extern_sym2(Sym *sym, Section
> *section, case TOK_strlen:
> case TOK_strcpy:
> case TOK_alloca:
> - strcpy(buf, "__bound_");
> - strcat(buf, name);
> + snprintf(buf, sizeof(buf), "__bound_%s", name);
> name = buf;
> break;
> }
strcpy and strcat are C89 and C99 while snprintf is only C99.
>
> ----------------------------------- tccelf.c
> -----------------------------------
> index a4dee19..479b2fa 100644
> @@ -114,7 +114,7 @@ ST_FUNC int put_elf_sym(Section *s, uplong value,
> unsigned long size,
> if (ELFW(ST_BIND)(info) != STB_LOCAL) {
> /* add another hashing entry */
> nbuckets = base[0];
> - h = elf_hash(name) % nbuckets;
> + h = name ? elf_hash(name) % nbuckets : 0;
> *ptr = base[2 + h];
> base[2 + h] = sym_index;
> base[1]++;
Fixed (see just pushed commits)
> @@ -3052,7 +3052,7 @@ static int ld_add_file_list(TCCState *s1, const char
> *cmd, int as_needed)
> ret = -1;
> goto lib_parse_error;
> }
> - strcpy(libname, &filename[1]);
> + snprintf(libname, sizeof(libname), "%s", &filename[1]);
> libname_to_filename(s1, libname, filename);
> } else if (t != LD_TOK_NAME) {
> tcc_error_noabort("filename expected");
C99
>
> ----------------------------------- tccgen.c
> -----------------------------------
> index 4300403..e06a932 100644
> @@ -361,6 +361,7 @@ void vpush64(int ty, unsigned long long v)
> CValue cval;
> CType ctype;
> ctype.t = ty;
> + ctype.ref = 0;
> cval.ull = v;
> vsetc(&ctype, VT_CONST, &cval);
> }
> @@ -1734,6 +1735,7 @@ ST_FUNC void gen_op(int op)
> }
> vswap();
> type1.t = t;
> + type1.ref = 0;
> gen_cast(&type1);
> vswap();
> /* special case for shifts and long long: we keep the shift as
> @@ -2717,6 +2719,7 @@ static void struct_decl(CType *type, int u)
> v = anon_sym++;
> }
> type1.t = a;
> + type1.ref = 0;
> /* we put an undefined size for struct/union */
> s = sym_push(v | SYM_STRUCT, &type1, 0, -1);
> s->r = 0; /* default alignment is zero as gcc */
> @@ -3396,6 +3399,7 @@ static void gfunc_param_typed(Sym *func, Sym *arg)
> /* default casting : only need to convert float to double */
> if ((vtop->type.t & VT_BTYPE) == VT_FLOAT) {
> type.t = VT_DOUBLE;
> + type.ref = 0;
> gen_cast(&type);
> }
> } else if (arg == NULL) {
> @@ -3592,6 +3596,7 @@ ST_FUNC void unary(void)
> if ((vtop->r & (VT_VALMASK | VT_LVAL | VT_SYM)) == VT_CONST) {
> CType boolean;
> boolean.t = VT_BOOL;
> + boolean.ref = 0;
> gen_cast(&boolean);
> vtop->c.i = !vtop->c.i;
> } else if ((vtop->r & VT_VALMASK) == VT_CMP)
> @@ -4101,6 +4106,7 @@ static void expr_cond(void)
> CType boolean;
> int c;
> boolean.t = VT_BOOL;
> + boolean.ref = 0;
> vdup();
> gen_cast(&boolean);
> c = vtop->c.i;
All fixed.
> @@ -5574,7 +5580,7 @@ ST_FUNC void gen_inline_functions(void)
> str = fn->token_str;
> fn->sym = NULL;
> if (file)
> - strcpy(file->filename, fn->filename);
> + snprintf(file->filename, sizeof(file->filename), "%s",
> fn->filename);
> sym->r = VT_SYM | VT_CONST;
> sym->type.t &= ~VT_INLINE;
C99
signature.asc
Description: This is a digitally signed message part.
- [Tinycc-devel] Small patch, Ivo van Poorten, 2013/01/30
- Re: [Tinycc-devel] Small patch, Domingo Alvarez Duarte, 2013/01/30
- Re: [Tinycc-devel] Small patch, Domingo Alvarez Duarte, 2013/01/30
- Re: [Tinycc-devel] Small patch, Domingo Alvarez Duarte, 2013/01/30
- Re: [Tinycc-devel] Small patch, Domingo Alvarez Duarte, 2013/01/30
- Re: [Tinycc-devel] Small patch,
Thomas Preud'homme <=
- Re: [Tinycc-devel] Small patch, Stephan Beal, 2013/01/31
- Re: [Tinycc-devel] Small patch, Thomas Preud'homme, 2013/01/31
- Re: [Tinycc-devel] Small patch, Domingo Alvarez Duarte, 2013/01/31
- Re: [Tinycc-devel] Small patch, Domingo Alvarez Duarte, 2013/01/31
- Re: [Tinycc-devel] Small patch, Thomas Preud'homme, 2013/01/31
- Re: [Tinycc-devel] Small patch, Stephan Beal, 2013/01/31
- Re: [Tinycc-devel] Small patch, Thomas Preud'homme, 2013/01/31
- Re: [Tinycc-devel] Small patch, Thomas Preud'homme, 2013/01/31
- Re: [Tinycc-devel] Small patch, Vincent Lefevre, 2013/01/31
- Re: [Tinycc-devel] Small patch, grischka, 2013/01/31