diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2021-08-27 15:25:26 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2021-08-30 17:46:00 +0200 |
commit | 7d33779a795afb54af1a96c0da93b532f9db3ba2 (patch) | |
tree | a760a2777d752fba7f91135ae7b80d37750d5745 /src/corelib/io/qstorageinfo_unix.cpp | |
parent | 5644af6f8a800a1516360a42ba4c1a8dc61fc516 (diff) |
Convert various callers of strtou?ll() to call strntou?ll()
Where size is known or can readily be determined.
Change-Id: I442e7ebb3757fdbf7d021a15e19aeba533b590a5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/corelib/io/qstorageinfo_unix.cpp')
-rw-r--r-- | src/corelib/io/qstorageinfo_unix.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/corelib/io/qstorageinfo_unix.cpp b/src/corelib/io/qstorageinfo_unix.cpp index 6bb1978970..566ffe46bc 100644 --- a/src/corelib/io/qstorageinfo_unix.cpp +++ b/src/corelib/io/qstorageinfo_unix.cpp @@ -467,7 +467,7 @@ inline bool QStorageIterator::next() if (fgets(ptr, buffer.size(), fp) == nullptr) return false; - size_t len = strlen(buffer.data()); + size_t len = strlen(ptr); if (len == 0) return false; while (Q_UNLIKELY(ptr[len - 1] != '\n' && !feof(fp))) { @@ -482,27 +482,28 @@ inline bool QStorageIterator::next() Q_ASSERT(len < size_t(buffer.size())); } ptr[len - 1] = '\0'; + const char *const stop = ptr + len - 1; // parse the line bool ok; mnt.mnt_freq = 0; mnt.mnt_passno = 0; - mnt.mount_id = qstrtoll(ptr, const_cast<const char **>(&ptr), 10, &ok); + mnt.mount_id = qstrntoll(ptr, stop - ptr, const_cast<const char **>(&ptr), 10, &ok); if (!ok) return false; - int parent_id = qstrtoll(ptr, const_cast<const char **>(&ptr), 10, &ok); + int parent_id = qstrntoll(ptr, stop - ptr, const_cast<const char **>(&ptr), 10, &ok); Q_UNUSED(parent_id); if (!ok) return false; - int rdevmajor = qstrtoll(ptr, const_cast<const char **>(&ptr), 10, &ok); + int rdevmajor = qstrntoll(ptr, stop - ptr, const_cast<const char **>(&ptr), 10, &ok); if (!ok) return false; if (*ptr != ':') return false; - int rdevminor = qstrtoll(ptr + 1, const_cast<const char **>(&ptr), 10, &ok); + int rdevminor = qstrntoll(ptr + 1, stop - ptr - 1, const_cast<const char **>(&ptr), 10, &ok); if (!ok) return false; mnt.rdev = makedev(rdevmajor, rdevminor); |