If a gettime64 call fails, return the error and avoid copying data back
to user.

Cc: Richard Cochran <richardcoch...@gmail.com>
Cc: Jacob Keller <jacob.e.kel...@intel.com>
Signed-off-by: Miroslav Lichvar <mlich...@redhat.com>
---
 drivers/ptp/ptp_chardev.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/ptp/ptp_chardev.c b/drivers/ptp/ptp_chardev.c
index b54b8158ff8a..3c681bed5703 100644
--- a/drivers/ptp/ptp_chardev.c
+++ b/drivers/ptp/ptp_chardev.c
@@ -228,7 +228,9 @@ long ptp_ioctl(struct posix_clock *pc, unsigned int cmd, 
unsigned long arg)
                        pct->sec = ts.tv_sec;
                        pct->nsec = ts.tv_nsec;
                        pct++;
-                       ptp->info->gettime64(ptp->info, &ts);
+                       err = ptp->info->gettime64(ptp->info, &ts);
+                       if (err)
+                               goto out;
                        pct->sec = ts.tv_sec;
                        pct->nsec = ts.tv_nsec;
                        pct++;
@@ -281,6 +283,7 @@ long ptp_ioctl(struct posix_clock *pc, unsigned int cmd, 
unsigned long arg)
                break;
        }
 
+out:
        kfree(sysoff);
        return err;
 }
-- 
2.17.2

Reply via email to