change strcpy to strlcpy

Change-Id: I8b9429a3c225a82842fce136bdb14b8b135066d3
Signed-off-by: lilei19 <lilei19@xiaomi.com>
This commit is contained in:
lilei19 2023-02-09 19:01:32 +08:00 committed by Xiang Xiao
parent e86745b9a2
commit 41f60bd669
33 changed files with 238 additions and 180 deletions

View file

@ -41,7 +41,7 @@
****************************************************************************/
#ifdef A_COLOR
# define TITLECOLOR 1 /* color pair indices */
# define TITLECOLOR 1 /* color pair indices */
# define MAINMENUCOLOR (2 | A_BOLD)
# define MAINMENUREVCOLOR (3 | A_BOLD | A_REVERSE)
# define SUBMENUCOLOR (4 | A_BOLD)
@ -51,7 +51,7 @@
# define INPUTBOXCOLOR 8
# define EDITBOXCOLOR (9 | A_BOLD | A_REVERSE)
#else
# define TITLECOLOR 0 /* color pair indices */
# define TITLECOLOR 0 /* color pair indices */
# define MAINMENUCOLOR (A_BOLD)
# define MAINMENUREVCOLOR (A_BOLD | A_REVERSE)
# define SUBMENUCOLOR (A_BOLD)
@ -62,11 +62,11 @@
# define EDITBOXCOLOR (A_BOLD | A_REVERSE)
#endif
#define th 1 /* title window height */
#define mh 1 /* main menu height */
#define sh 2 /* status window height */
#define th 1 /* title window height */
#define mh 1 /* main menu height */
#define sh 2 /* status window height */
#define bh (LINES - th - mh - sh) /* body window height */
#define bw COLS /* body window width */
#define bw COLS /* body window width */
/****************************************************************************
* Private Data
@ -298,7 +298,12 @@ static void mainhelp(void)
static void mainmenu(menu *mp)
{
int nitems, barlen, old = -1, cur = 0, c, cur0;
int nitems;
int barlen;
int c;
int cur0;
int old = -1;
int cur = 0;
menudim(mp, &nitems, &barlen);
repaintmainmenu(barlen, mp);
@ -599,13 +604,12 @@ void domenu(const menu *mp)
do
{
cur = (cur + 1) % nitems;
}
while ((cur != cur0) && (hotkey(mp[cur].name) != toupper((int)key)));
while ((cur != cur0) && (hotkey(mp[cur].name)
!= toupper((int)key)));
key = (hotkey(mp[cur].name) == toupper((int)key)) ? '\n' : ERR;
}
}
rmerror();
@ -692,18 +696,27 @@ static void repainteditbox(WINDOW *win, int x, char *buf)
int weditstr(WINDOW *win, char *buf, int field)
{
char org[MAXSTRLEN], *tp, *bp = buf;
bool defdisp = true, stop = false, insert = false;
int cury, curx, begy, begx, oldattr;
WINDOW *wedit;
char org[MAXSTRLEN];
char *tp;
char *bp = buf;
bool defdisp = true;
bool stop = false;
bool insert = false;
int cury;
int curx;
int begy;
int begx;
int oldattr;
int c = 0;
WINDOW *wedit;
if ((field >= MAXSTRLEN) || (buf == NULL) || ((int)strlen(buf) > field - 1))
if ((field >= MAXSTRLEN) || (buf == NULL) ||
((int)strlen(buf) > field - 1))
{
return ERR;
}
strcpy(org, buf); /* save original */
strlcpy(org, buf, sizeof(org)); /* save original */
wrefresh(win);
getyx(win, cury, curx);
@ -760,7 +773,7 @@ int weditstr(WINDOW *win, char *buf, int field)
case KEY_DC:
if (*bp != 0)
{
memmove((void *)(bp), (const void *)(bp+1), strlen(bp));
memmove((void *)(bp), (const void *)(bp + 1), strlen(bp));
}
break;
@ -769,7 +782,8 @@ int weditstr(WINDOW *win, char *buf, int field)
{
if (bp > buf)
{
memmove((void *)(bp - 1), (const void *)bp, strlen(bp) + 1);
memmove((void *)(bp - 1), (const void *)bp,
strlen(bp) + 1);
bp--;
}
}
@ -834,7 +848,10 @@ int weditstr(WINDOW *win, char *buf, int field)
WINDOW *winputbox(WINDOW *win, int nlines, int ncols)
{
WINDOW *winp;
int cury, curx, begy, begx;
int cury;
int curx;
int begy;
int begx;
getyx(win, cury, curx);
getbegyx(win, begy, begx);
@ -848,7 +865,16 @@ WINDOW *winputbox(WINDOW *win, int nlines, int ncols)
int getstrings(const char *desc[], char *buf[], int field)
{
WINDOW *winput;
int oldy, oldx, maxy, maxx, nlines, ncols, i, n, l, mmax = 0;
int oldy;
int oldx;
int maxy;
int maxx;
int nlines;
int ncols;
int i;
int n;
int l;
int mmax = 0;
int c = 0;
bool stop = false;

View file

@ -1,5 +1,5 @@
/****************************************************************************
* apps/examples/pdcurses/tui.c
* apps/examples/pdcurses/tui_main.c
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@ -70,11 +70,21 @@ static const char *g_fieldname[6] =
menu g_mainmenu[] =
{
{"Asub", sub0, "Go inside first submenu"},
{"Bsub", sub1, "Go inside second submenu"},
{"Csub", sub2, "Go inside third submenu"},
{"Dsub", sub3, "Go inside fourth submenu"},
{"", (FUNC)0, ""} /* always add this as the last item! */
{
"Asub", sub0, "Go inside first submenu"
},
{
"Bsub", sub1, "Go inside second submenu"
},
{
"Csub", sub2, "Go inside third submenu"
},
{
"Dsub", sub3, "Go inside fourth submenu"
},
{
"", (FUNC)0, "" /* always add this as the last item! */
}
};
static const menu g_submenu0[] =
@ -145,7 +155,8 @@ static char *getfname(char *desc, char *fname, int field)
fieldname[1] = 0;
fieldbuf[0] = fname;
return (getstrings((const char **)fieldname, fieldbuf, field) == KEY_ESC) ? NULL : fname;
return (getstrings((const char **)fieldname,
fieldbuf, field) == KEY_ESC) ? NULL : fname;
}
static void showfile(char *fname)
@ -240,7 +251,7 @@ static void subfunc2(void)
{
char fname[MAXSTRLEN];
strcpy(fname, FNAME);
strlcpy(fname, FNAME, sizeof(fname));
if (getfname("File to browse:", fname, 50))
{
showfile(fname);
@ -262,6 +273,7 @@ int main(int argc, FAR char *argv[])
setlocale(LC_ALL, "");
#endif
startmenu(g_mainmenu, "TUI - 'textual user interface' demonstration program");
startmenu(g_mainmenu,
"TUI - 'textual user interface' demonstration program");
return 0;
}

View file

@ -137,14 +137,14 @@ int main(int argc, FAR char *argv[])
int i;
int opt;
char devname[DEVNAME_SIZE];
strcpy(devname, CONFIG_EXAMPLES_TIMER_DEVNAME);
strlcpy(devname, CONFIG_EXAMPLES_TIMER_DEVNAME, sizeof(devname));
while ((opt = getopt(argc, argv, ":d:")) != -1)
{
switch (opt)
{
case 'd':
strcpy(devname, optarg);
strlcpy(devname, optarg, sizeof(devname));
break;
case ':':
fprintf(stderr, "ERROR: Option needs a value\n");

View file

@ -267,8 +267,10 @@ int main(int argc, FAR char *argv[])
/* Use the ones configured on menuconfig */
strcpy(g_devtim, CONFIG_EXAMPLES_TIMER_GPIO_TIM_DEVNAME);
strcpy(g_devgpio, CONFIG_EXAMPLES_TIMER_GPIO_GPIO_DEVNAME);
strlcpy(g_devtim, CONFIG_EXAMPLES_TIMER_GPIO_TIM_DEVNAME,
sizeof(g_devtim));
strlcpy(g_devgpio, CONFIG_EXAMPLES_TIMER_GPIO_GPIO_DEVNAME,
sizeof(g_devgpio));
/* Or the ones passed as arguments */
@ -277,10 +279,10 @@ int main(int argc, FAR char *argv[])
switch (opt)
{
case 't':
strcpy(g_devtim, optarg);
strlcpy(g_devtim, optarg, sizeof(g_devtim));
break;
case 'g':
strcpy(g_devgpio, optarg);
strlcpy(g_devgpio, optarg, sizeof(g_devgpio));
break;
case ':':
fprintf(stderr, "ERROR: Option needs a value\n");

View file

@ -136,7 +136,8 @@ static void parse_args(FAR struct wdog_example_s *wdog, int argc,
wdog->pingtime = CONFIG_EXAMPLES_WATCHDOG_PINGTIME;
wdog->pingdelay = CONFIG_EXAMPLES_WATCHDOG_PINGDELAY;
wdog->timeout = CONFIG_EXAMPLES_WATCHDOG_TIMEOUT;
strcpy(wdog->devname, CONFIG_EXAMPLES_WATCHDOG_DEVPATH);
strlcpy(wdog->devname, CONFIG_EXAMPLES_WATCHDOG_DEVPATH,
sizeof(wdog->devname));
for (index = 1; index < argc; )
{
@ -163,7 +164,7 @@ static void parse_args(FAR struct wdog_example_s *wdog, int argc,
case 'i':
nargs = arg_string(&argv[index], &string);
strcpy(wdog->devname, string);
strlcpy(wdog->devname, string, sizeof(wdog->devname));
index += nargs;
break;

View file

@ -111,7 +111,8 @@ int wdt_init(void)
{
int fd;
int ret;
strcpy(wdog.devname, CONFIG_EXAMPLES_WATCHER_DEVPATH);
strlcpy(wdog.devname, CONFIG_EXAMPLES_WATCHER_DEVPATH,
sizeof(wdog.devname));
/* Open the watchdog device for reading */

View file

@ -69,9 +69,13 @@ struct xmlrpc_entry_s get_device_stats =
static int calls_get_device_stats(struct xmlrpc_s *xmlcall)
{
char username[80], password[80];
char lastCommand[80], curState[80];
int request = 0, status, ret;
char username[80];
char password[80];
char lastCommand[80];
char curState[80];
int request = 0;
int status;
int ret;
do
{
@ -100,8 +104,8 @@ static int calls_get_device_stats(struct xmlrpc_s *xmlcall)
/* Dummy up some data... */
status = 1;
strcpy(lastCommand, "reboot");
strcpy(curState, "Normal Operation");
strlcpy(lastCommand, "reboot", sizeof(lastCommand));
strlcpy(curState, "Normal Operation", sizeof(curState));
ret = xmlrpc_buildresponse(xmlcall, "{iss}",
"status", status,