Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
lxc
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
lxc
Commits
7a3e2867
Unverified
Commit
7a3e2867
authored
Jun 18, 2018
by
Donghwa Jeong
Committed by
Christian Brauner
Dec 10, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
secure coding: #2 strcpy => strlcpy
Signed-off-by:
Donghwa Jeong
<
dh48.jeong@samsung.com
>
parent
0c4826e3
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
58 additions
and
16 deletions
+58
-16
initutils.c
src/lxc/initutils.c
+10
-3
lxc_user_nic.c
src/lxc/lxc_user_nic.c
+8
-2
nbd.c
src/lxc/storage/nbd.c
+10
-2
storage.c
src/lxc/storage/storage.c
+9
-2
utils.c
src/lxc/utils.c
+21
-7
No files found.
src/lxc/initutils.c
View file @
7a3e2867
...
@@ -26,6 +26,10 @@
...
@@ -26,6 +26,10 @@
#include "initutils.h"
#include "initutils.h"
#include "log.h"
#include "log.h"
#ifndef HAVE_STRLCPY
#include "include/strlcpy.h"
#endif
lxc_log_define
(
lxc_initutils
,
lxc
);
lxc_log_define
(
lxc_initutils
,
lxc
);
static
char
*
copy_global_config_value
(
char
*
p
)
static
char
*
copy_global_config_value
(
char
*
p
)
...
@@ -35,14 +39,17 @@ static char *copy_global_config_value(char *p)
...
@@ -35,14 +39,17 @@ static char *copy_global_config_value(char *p)
if
(
len
<
1
)
if
(
len
<
1
)
return
NULL
;
return
NULL
;
if
(
p
[
len
-
1
]
==
'\n'
)
{
if
(
p
[
len
-
1
]
==
'\n'
)
{
p
[
len
-
1
]
=
'\0'
;
p
[
len
-
1
]
=
'\0'
;
len
--
;
len
--
;
}
}
retbuf
=
malloc
(
len
+
1
);
retbuf
=
malloc
(
len
+
1
);
if
(
!
retbuf
)
if
(
!
retbuf
)
return
NULL
;
return
NULL
;
strcpy
(
retbuf
,
p
);
(
void
)
strlcpy
(
retbuf
,
p
,
len
+
1
);
return
retbuf
;
return
retbuf
;
}
}
...
@@ -355,7 +362,7 @@ int setproctitle(char *title)
...
@@ -355,7 +362,7 @@ int setproctitle(char *title)
ret
=
prctl
(
PR_SET_MM
,
PR_SET_MM_MAP
,
(
long
)
&
prctl_map
,
sizeof
(
prctl_map
),
0
);
ret
=
prctl
(
PR_SET_MM
,
PR_SET_MM_MAP
,
(
long
)
&
prctl_map
,
sizeof
(
prctl_map
),
0
);
if
(
ret
==
0
)
if
(
ret
==
0
)
strcpy
((
char
*
)
arg_start
,
title
);
(
void
)
strlcpy
((
char
*
)
arg_start
,
title
,
len
);
else
else
INFO
(
"setting cmdline failed - %s"
,
strerror
(
errno
));
INFO
(
"setting cmdline failed - %s"
,
strerror
(
errno
));
...
...
src/lxc/lxc_user_nic.c
View file @
7a3e2867
...
@@ -50,6 +50,10 @@
...
@@ -50,6 +50,10 @@
#include "network.h"
#include "network.h"
#include "utils.h"
#include "utils.h"
#ifndef HAVE_STRLCPY
#include "include/strlcpy.h"
#endif
#define usernic_debug_stream(stream, format, ...) \
#define usernic_debug_stream(stream, format, ...) \
do { \
do { \
fprintf(stream, "%s: %d: %s: " format, __FILE__, __LINE__, \
fprintf(stream, "%s: %d: %s: " format, __FILE__, __LINE__, \
...
@@ -828,9 +832,11 @@ static bool create_db_dir(char *fnam)
...
@@ -828,9 +832,11 @@ static bool create_db_dir(char *fnam)
{
{
int
ret
;
int
ret
;
char
*
p
;
char
*
p
;
size_t
len
;
p
=
alloca
(
strlen
(
fnam
)
+
1
);
len
=
strlen
(
fnam
);
strcpy
(
p
,
fnam
);
p
=
alloca
(
len
+
1
);
(
void
)
strlcpy
(
p
,
fnam
,
len
+
1
);
fnam
=
p
;
fnam
=
p
;
p
=
p
+
1
;
p
=
p
+
1
;
...
...
src/lxc/storage/nbd.c
View file @
7a3e2867
...
@@ -37,6 +37,10 @@
...
@@ -37,6 +37,10 @@
#include "storage_utils.h"
#include "storage_utils.h"
#include "utils.h"
#include "utils.h"
#ifndef HAVE_STRLCPY
#include "include/strlcpy.h"
#endif
lxc_log_define
(
nbd
,
lxc
);
lxc_log_define
(
nbd
,
lxc
);
struct
nbd_attach_data
{
struct
nbd_attach_data
{
...
@@ -53,10 +57,14 @@ static bool wait_for_partition(const char *path);
...
@@ -53,10 +57,14 @@ static bool wait_for_partition(const char *path);
bool
attach_nbd
(
char
*
src
,
struct
lxc_conf
*
conf
)
bool
attach_nbd
(
char
*
src
,
struct
lxc_conf
*
conf
)
{
{
char
*
orig
=
alloca
(
strlen
(
src
)
+
1
)
,
*
p
,
path
[
50
];
char
*
orig
,
*
p
,
path
[
50
];
int
i
=
0
;
int
i
=
0
;
size_t
len
;
len
=
strlen
(
src
);
orig
=
alloca
(
len
+
1
);
(
void
)
strlcpy
(
orig
,
src
,
len
+
1
);
strcpy
(
orig
,
src
);
/* if path is followed by a partition, drop that for now */
/* if path is followed by a partition, drop that for now */
p
=
strchr
(
orig
,
':'
);
p
=
strchr
(
orig
,
':'
);
if
(
p
)
if
(
p
)
...
...
src/lxc/storage/storage.c
View file @
7a3e2867
...
@@ -61,6 +61,10 @@
...
@@ -61,6 +61,10 @@
#include "utils.h"
#include "utils.h"
#include "zfs.h"
#include "zfs.h"
#ifndef HAVE_STRLCPY
#include "include/strlcpy.h"
#endif
#ifndef BLKGETSIZE64
#ifndef BLKGETSIZE64
#define BLKGETSIZE64 _IOR(0x12, 114, size_t)
#define BLKGETSIZE64 _IOR(0x12, 114, size_t)
#endif
#endif
...
@@ -510,9 +514,12 @@ struct lxc_storage *storage_create(const char *dest, const char *type,
...
@@ -510,9 +514,12 @@ struct lxc_storage *storage_create(const char *dest, const char *type,
if
(
strchr
(
type
,
','
))
{
if
(
strchr
(
type
,
','
))
{
char
*
dup
,
*
token
;
char
*
dup
,
*
token
;
char
*
saveptr
=
NULL
;
char
*
saveptr
=
NULL
;
size_t
len
;
len
=
strlen
(
type
);
dup
=
alloca
(
len
+
1
);
(
void
)
strlcpy
(
dup
,
type
,
len
+
1
);
dup
=
alloca
(
strlen
(
type
)
+
1
);
strcpy
(
dup
,
type
);
for
(
token
=
strtok_r
(
dup
,
","
,
&
saveptr
);
token
;
for
(
token
=
strtok_r
(
dup
,
","
,
&
saveptr
);
token
;
token
=
strtok_r
(
NULL
,
","
,
&
saveptr
))
{
token
=
strtok_r
(
NULL
,
","
,
&
saveptr
))
{
bdev
=
do_storage_create
(
dest
,
token
,
cname
,
specs
);
bdev
=
do_storage_create
(
dest
,
token
,
cname
,
specs
);
...
...
src/lxc/utils.c
View file @
7a3e2867
...
@@ -51,6 +51,10 @@
...
@@ -51,6 +51,10 @@
#include "parse.h"
#include "parse.h"
#include "utils.h"
#include "utils.h"
#ifndef HAVE_STRLCPY
#include "include/strlcpy.h"
#endif
#ifndef O_PATH
#ifndef O_PATH
#define O_PATH 010000000
#define O_PATH 010000000
#endif
#endif
...
@@ -641,7 +645,8 @@ char *lxc_string_join(const char *sep, const char **parts, bool use_as_prefix)
...
@@ -641,7 +645,8 @@ char *lxc_string_join(const char *sep, const char **parts, bool use_as_prefix)
return
NULL
;
return
NULL
;
if
(
use_as_prefix
)
if
(
use_as_prefix
)
strcpy
(
result
,
sep
);
(
void
)
strlcpy
(
result
,
sep
,
result_len
+
1
);
for
(
p
=
(
char
**
)
parts
;
*
p
;
p
++
)
{
for
(
p
=
(
char
**
)
parts
;
*
p
;
p
++
)
{
if
(
p
>
(
char
**
)
parts
)
if
(
p
>
(
char
**
)
parts
)
strcat
(
result
,
sep
);
strcat
(
result
,
sep
);
...
@@ -758,12 +763,15 @@ bool lxc_string_in_list(const char *needle, const char *haystack, char _sep)
...
@@ -758,12 +763,15 @@ bool lxc_string_in_list(const char *needle, const char *haystack, char _sep)
{
{
char
*
token
,
*
str
,
*
saveptr
=
NULL
;
char
*
token
,
*
str
,
*
saveptr
=
NULL
;
char
sep
[
2
]
=
{
_sep
,
'\0'
};
char
sep
[
2
]
=
{
_sep
,
'\0'
};
size_t
len
;
if
(
!
haystack
||
!
needle
)
if
(
!
haystack
||
!
needle
)
return
0
;
return
0
;
str
=
alloca
(
strlen
(
haystack
)
+
1
);
len
=
strlen
(
haystack
);
strcpy
(
str
,
haystack
);
str
=
alloca
(
len
+
1
);
(
void
)
strlcpy
(
str
,
haystack
,
len
+
1
);
for
(;
(
token
=
strtok_r
(
str
,
sep
,
&
saveptr
));
str
=
NULL
)
{
for
(;
(
token
=
strtok_r
(
str
,
sep
,
&
saveptr
));
str
=
NULL
)
{
if
(
strcmp
(
needle
,
token
)
==
0
)
if
(
strcmp
(
needle
,
token
)
==
0
)
return
1
;
return
1
;
...
@@ -780,12 +788,15 @@ char **lxc_string_split(const char *string, char _sep)
...
@@ -780,12 +788,15 @@ char **lxc_string_split(const char *string, char _sep)
size_t
result_capacity
=
0
;
size_t
result_capacity
=
0
;
size_t
result_count
=
0
;
size_t
result_count
=
0
;
int
r
,
saved_errno
;
int
r
,
saved_errno
;
size_t
len
;
if
(
!
string
)
if
(
!
string
)
return
calloc
(
1
,
sizeof
(
char
*
));
return
calloc
(
1
,
sizeof
(
char
*
));
str
=
alloca
(
strlen
(
string
)
+
1
);
len
=
strlen
(
string
);
strcpy
(
str
,
string
);
str
=
alloca
(
len
+
1
);
(
void
)
strlcpy
(
str
,
string
,
len
+
1
);
for
(;
(
token
=
strtok_r
(
str
,
sep
,
&
saveptr
));
str
=
NULL
)
{
for
(;
(
token
=
strtok_r
(
str
,
sep
,
&
saveptr
));
str
=
NULL
)
{
r
=
lxc_grow_array
((
void
***
)
&
result
,
&
result_capacity
,
result_count
+
1
,
16
);
r
=
lxc_grow_array
((
void
***
)
&
result
,
&
result_capacity
,
result_count
+
1
,
16
);
if
(
r
<
0
)
if
(
r
<
0
)
...
@@ -821,12 +832,15 @@ char **lxc_string_split_and_trim(const char *string, char _sep)
...
@@ -821,12 +832,15 @@ char **lxc_string_split_and_trim(const char *string, char _sep)
size_t
result_count
=
0
;
size_t
result_count
=
0
;
int
r
,
saved_errno
;
int
r
,
saved_errno
;
size_t
i
=
0
;
size_t
i
=
0
;
size_t
len
;
if
(
!
string
)
if
(
!
string
)
return
calloc
(
1
,
sizeof
(
char
*
));
return
calloc
(
1
,
sizeof
(
char
*
));
str
=
alloca
(
strlen
(
string
)
+
1
);
len
=
strlen
(
string
);
strcpy
(
str
,
string
);
str
=
alloca
(
len
+
1
);
(
void
)
strlcpy
(
str
,
string
,
len
+
1
);
for
(;
(
token
=
strtok_r
(
str
,
sep
,
&
saveptr
));
str
=
NULL
)
{
for
(;
(
token
=
strtok_r
(
str
,
sep
,
&
saveptr
));
str
=
NULL
)
{
while
(
token
[
0
]
==
' '
||
token
[
0
]
==
'\t'
)
while
(
token
[
0
]
==
' '
||
token
[
0
]
==
'\t'
)
token
++
;
token
++
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment