am7xxx: make sure am7xxx_get_device_info() always returns sensible values
authorAntonio Ospite <ao2@ao2.it>
Tue, 14 Feb 2017 08:49:24 +0000 (09:49 +0100)
committerAntonio Ospite <ao2@ao2.it>
Tue, 14 Feb 2017 08:49:24 +0000 (09:49 +0100)
am7xxx_get_device_info() was not covering the case of a non-NULL output
parameter on the very first invocation, this case would not usually
happen in normal operation, but the problem was there: in that case the
output device_info structure would have contained garbage, as spotted by
the static analyzer:

.../src/am7xxx.c:1279:21: warning: The right operand of '<=' is a garbage value
            original_width <= device_info.native_width &&
                           ^  ~~~~~~~~~~~~~~~~~~~~~~~~
.../src/am7xxx.c:1288:39: warning: The right operand of '/' is a garbage value
        width_ratio =  (float)original_width / device_info.native_width;
                                             ^ ~~~~~~~~~~~~~~~~~~~~~~~~

While at it also fix the symmetric case of a NULL output parameter on
subsequent invocation: check that the output argument is non-NULL before
memcpy-ing to it.


No differences found