| author | Egbert Eich <eich@freedesktop.org> | 2008-08-03 11:24:49 (GMT) |
|---|---|---|
| committer | Egbert Eich <eich@freedesktop.org> | 2008-08-03 11:24:49 (GMT) |
| commit | 3046799a06ecb79211ef0f4a2db9de4eec7233fb (patch) (side-by-side diff) | |
| tree | 63bdfd7a1f7266cd0a434616c375ffb1a6f89758 | |
| parent | 4dcc8ae1a6903434def1a2706f7c68ff9e2a17c4 (diff) | |
| download | xrandr-3046799a06ecb79211ef0f4a2db9de4eec7233fb.zip xrandr-3046799a06ecb79211ef0f4a2db9de4eec7233fb.tar.gz | |
Fix for 64bit: feed a pointer to the right size variable to scanf().
XID is unsigned long, however %x in scanf takes a pointer to an unsigned int.
Thus with XID xid, a sscanf(..., "0x%x", &xid) will most likely produce the
wrong results.
| -rw-r--r-- | xrandr.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -428,7 +428,8 @@ set_name_all (name_t *name, name_t *old) static void set_name (name_t *name, char *string, name_kind_t valid) { - XID xid; + unsigned int xid; /* don't make it XID (which is unsigned long): + scanf() takes unsigned int */ int index; if ((valid & name_xid) && sscanf (string, "0x%x", &xid) == 1) |
