On 11/02/11 04:44, walter harms wrote:
diff --git a/os/utils.c b/os/utils.c
index 1c75dfc..c828f01 100644
--- a/os/utils.c
+++ b/os/utils.c
@@ -258,7 +258,7 @@ LockServer(void)
*/
tmppath = LOCK_DIR;
- sprintf(port, "%d", atoi(display));
+ snprintf(port, sizeof(port), "%d", atoi(display));
len = strlen(LOCK_PREFIX)> strlen(LOCK_TMP_PREFIX) ? strlen(LOCK_PREFIX) :
strlen(LOCK_TMP_PREFIX);
len += strlen(tmppath) + strlen(port) + strlen(LOCK_SUFFIX) + 1;
the snprintf() is ok but the code looks odd ....
The surrounding code is odd, but making it less odd is outside the scope
of this change.
if (action->type==XkbSA_LockDeviceBtn) {
switch (act->flags&(XkbSA_LockNoUnlock|XkbSA_LockNoLock)) {
case XkbSA_LockNoLock:
- sprintf(tbuf,",affect=unlock"); break;
+ snprintf(tbuf,sizeof(tbuf),",affect=unlock"); break;
case XkbSA_LockNoUnlock:
- sprintf(tbuf,",affect=lock"); break;
+ snprintf(tbuf,sizeof(tbuf),",affect=lock"); break;
case XkbSA_LockNoUnlock|XkbSA_LockNoLock:
- sprintf(tbuf,",affect=neither"); break;
+ snprintf(tbuf,sizeof(tbuf),",affect=neither"); break;
default:
- sprintf(tbuf,",affect=both"); break;
+ snprintf(tbuf,sizeof(tbuf),",affect=both"); break;
strncpy() ?
}
TryCopyStr(buf,tbuf,sz);
}
Doesn't look like we need either snprintf or strncpy here actually, since
we're passing to a function to copy it already, so don't need to copy it
again to a temp buffer first.
@@ -1197,12 +1197,12 @@ char buf[256],*tmp;
kn= XkbKeyNameText(xkb->names->keys[kc].name,XkbXKBFile);
else {
static char tbuf[8];
- sprintf(tbuf,"%d",kc);
+ snprintf(tbuf,sizeof(tbuf),"%d",kc);
kn= tbuf;
why not snprintf(kn,sizeof(kn),"%d",kc); ?
Because kn is simply:
char *kn;
with no memory allocated to it, since each case is responsible for
providing its own memory allocation.
That code could be written better - there's no need for a static buffer,
since the memory isn't accessed outside the scope of this function, but
that's a different cleanup than is being done in this patch.
--
-Alan Coopersmith- [email protected]
Oracle Solaris Platform Engineering: X Window System
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel