This could explain inconsistent behaviour, intialized was accessed uninitialized (oh, the irony!).
For good effort, calloc _and_ initialize "initialized". Two zeros are more than one, after all. Signed-off-by: Peter Hutterer <[email protected]> --- the first version had a nasty bug, resetting initialized for every device and thus being rather pointless. silly me. src/wcmISDV4.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/wcmISDV4.c b/src/wcmISDV4.c index 4c75da6..be10dff 100644 --- a/src/wcmISDV4.c +++ b/src/wcmISDV4.c @@ -187,15 +187,20 @@ static Bool isdv4ParseOptions(LocalDevicePtr local) return FALSE; } - if (!common->private && - !(common->private = malloc(sizeof(wcmISDV4Data)))) + if (!common->private) { + if (!(common->private = calloc(1, sizeof(wcmISDV4Data)))) + { xf86Msg(X_ERROR, "%s: failed to alloc backend-specific data.\n", local->name); + return FALSE; + } + isdv4data = common->private; + isdv4data->baudrate = baud; + isdv4data->initialized = 0; } isdv4data = common->private; - isdv4data->baudrate = baud; return TRUE; } -- 1.7.1 ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ Linuxwacom-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
