Module Name: src
Committed By: skrll
Date: Sun Oct 13 07:46:26 UTC 2013
Modified Files:
src/sys/external/bsd/vchiq/dist/interface/vchiq_arm: vchiq_arm.c
vchiq_core.c
Log Message:
Print the client_id (lwp address) as hex and avoid stack overflow. Use
snprintf while here.
Fixes PR/48287
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \
src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_arm.c
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_arm.c
diff -u src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_arm.c:1.6 src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_arm.c:1.7
--- src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_arm.c:1.6 Thu Sep 19 15:13:43 2013
+++ src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_arm.c Sun Oct 13 07:46:26 2013
@@ -577,7 +577,7 @@ vchiq_ioctl(struct file *fp, u_long cmd,
if (status != VCHIQ_SUCCESS) {
vchiq_log_error(vchiq_susp_log_level,
"%s: cmd %s returned error %d for "
- "service %c%c%c%c:%03d",
+ "service %c%c%c%c:%8x",
__func__,
(cmd == VCHIQ_IOC_USE_SERVICE) ?
"VCHIQ_IOC_USE_SERVICE" :
@@ -1942,7 +1942,7 @@ output_timeout_error(VCHIQ_STATE_T *stat
VCHIQ_SERVICE_T *service_ptr = state->services[i];
if (service_ptr && service_ptr->service_use_count &&
(service_ptr->srvstate != VCHIQ_SRVSTATE_FREE)) {
- snprintf(service_err, 50, " %c%c%c%c(%d) service has "
+ snprintf(service_err, 50, " %c%c%c%c(%8x) service has "
"use count %d%s", VCHIQ_FOURCC_AS_4CHARS(
service_ptr->base.fourcc),
service_ptr->client_id,
@@ -2237,7 +2237,7 @@ vchiq_use_internal(VCHIQ_STATE_T *state,
sprintf(entity, "VCHIQ: ");
entity_uc = &arm_state->peer_use_count;
} else if (service) {
- sprintf(entity, "%c%c%c%c:%03d",
+ snprintf(entity, sizeof(entity), "%c%c%c%c:%8x",
VCHIQ_FOURCC_AS_4CHARS(service->base.fourcc),
service->client_id);
entity_uc = &service->service_use_count;
@@ -2366,7 +2366,7 @@ vchiq_release_internal(VCHIQ_STATE_T *st
vchiq_log_trace(vchiq_susp_log_level, "%s", __func__);
if (service) {
- sprintf(entity, "%c%c%c%c:%03d",
+ snprintf(entity, sizeof(entity), "%c%c%c%c:%8x",
VCHIQ_FOURCC_AS_4CHARS(service->base.fourcc),
service->client_id);
entity_uc = &service->service_use_count;
@@ -2596,7 +2596,7 @@ vchiq_check_service(VCHIQ_SERVICE_T *ser
if (ret == VCHIQ_ERROR) {
vchiq_log_error(vchiq_susp_log_level,
- "%s ERROR - %c%c%c%c:%d service count %d, "
+ "%s ERROR - %c%c%c%c:%8x service count %d, "
"state count %d, videocore suspend state %s", __func__,
VCHIQ_FOURCC_AS_4CHARS(service->base.fourcc),
service->client_id, service->service_use_count,
Index: src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.c
diff -u src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.c:1.5 src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.c:1.6
--- src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.c:1.5 Fri Sep 20 09:05:53 2013
+++ src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_core.c Sun Oct 13 07:46:26 2013
@@ -3664,7 +3664,7 @@ vchiq_dump_service_state(void *dump_cont
if (service->public_fourcc != VCHIQ_FOURCC_INVALID)
snprintf(remoteport + len2,
sizeof(remoteport) - len2,
- " (client %x)", service->client_id);
+ " (client %8x)", service->client_id);
} else
strcpy(remoteport, "n/a");