Fix klocwork issues
BZ: 185330
Use snprintf instead of sprintf while assemble strings.
Fixed a possible array index out of bounds issue.
Change-Id: Ic5d25f70f88e81209aecfe16fce9dca7af3b1bd0
Signed-off-by: Elaine Wang <elaine.wang@intel.com>
diff --git a/libdrm/xf86drm.c b/libdrm/xf86drm.c
index 26dd812..eaa7e51 100644
--- a/libdrm/xf86drm.c
+++ b/libdrm/xf86drm.c
@@ -322,7 +322,7 @@
uid_t user = DRM_DEV_UID;
gid_t group = DRM_DEV_GID, serv_group;
- sprintf(buf, type ? DRM_DEV_NAME : DRM_CONTROL_DEV_NAME, DRM_DIR_NAME, minor);
+ snprintf(buf, sizeof(buf), type ? DRM_DEV_NAME : DRM_CONTROL_DEV_NAME, DRM_DIR_NAME, minor);
drmMsg("drmOpenDevice: node name is %s\n", buf);
if (drm_server_info) {
@@ -428,8 +428,8 @@
if (create)
return drmOpenDevice(makedev(DRM_MAJOR, minor), minor, type);
-
- sprintf(buf, type ? DRM_DEV_NAME : DRM_CONTROL_DEV_NAME, DRM_DIR_NAME, minor);
+
+ snprintf(buf, sizeof(buf), type ? DRM_DEV_NAME : DRM_CONTROL_DEV_NAME, DRM_DIR_NAME, minor);
if ((fd = open(buf, O_RDWR, 0)) >= 0)
return fd;
return -errno;
@@ -583,11 +583,11 @@
char *driver, *pt, *devstring;
int retcode;
- sprintf(proc_name, "/proc/dri/%d/name", i);
+ snprintf(proc_name, sizeof(proc_name), "/proc/dri/%d/name", i);
if ((fd = open(proc_name, 0, 0)) >= 0) {
retcode = read(fd, buf, sizeof(buf)-1);
close(fd);
- if (retcode) {
+ if (retcode > 0) {
buf[retcode-1] = '\0';
for (driver = pt = buf; *pt && *pt != ' '; ++pt)
;