summaryrefslogtreecommitdiffstats
path: root/lib/libc/uuid/uuid_compare.c
Commit message (Collapse)AuthorAgeFilesLines
* Avoid using intermediate variables by just comparing betweendelphij2007-04-051-27/+15
| | | | | | | | | | | | two values, the latter does not tend to have sign extension and/or overflow bugs, and makes the code more obvious. While I'm there, make use of a macro which is derived from bin/ps/ps.c: ps_compat() to improve the readability of the code. Suggested by: bde MFC after: 1 week
* In DCE 1.1, the time_low value is defined as an unsigned 32-bitdelphij2006-08-031-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | integer. Presently, our implementation employs an approach that converts the value to int64_t, then back to int, unfortunately, this approach can be problematic when the the difference between the two time_low is larger than 0x7fffffff, as the value is then truncated to int. To quote the test case from the original PR, the following is true with the current implementation: 865e1a56-b9d9-11d9-ba27-0003476f2e88 < 062ac45c-b9d9-11d9-ba27-0003476f2e88 However, according to the DCE specification, the expected result should be: 865e1a56-b9d9-11d9-ba27-0003476f2e88 > 062ac45c-b9d9-11d9-ba27-0003476f2e88 This commit adds a new intermediate variable which uses int64_t to store the result of subtraction between the two time_low values, which would not introduce different semantic of the MSB found in time_low value. PR: 83107 Submitted by: Steve Sears <sjs at acm dot org> MFC After: 1 month
* Constify arguments.marcel2005-01-031-2/+2
|
* Remove stale DCE 1.1 pointers to the IBM site. The URLs aren't validmarcel2003-08-081-1/+0
| | | | anymore. This also fixes long line bugs caused by the lengthy URLs :-)
* Fix two (2) bugs in one (1) statement:marcel2003-08-081-1/+4
| | | | | | | | | | | | | o fix the len argument of memcmp(3) to be the size of the node field of the uuid structure, not the size of the uuid structure itself. We're comparing the node fields... o uuid_compare(3) is specified to return -1, 0 or 1, depending on the outcome of the comparison. memcmp(3) returns the difference between the first differing bytes. Hence, we cannot ever return the return value of memcmp(3) as-is. PR: standards/55370 Submitted by: Konstantin Oznobihin <bork@rsu.ru>
* Implement DCE 1.1 compliant UUID functions. Immediate use of thesemarcel2002-10-301-0/+76
functions is expected for uuidgen(1), mca(8) and gpt(8). Given the generic use of UUIDs beyond the scope of the DCE 1.1 specification, visibility of the data structure at all levels of the machine, including firmware and the wish to not create a permanent build- time FreeBSD-ism for DCE compliant applications by creating a new library, it was decided that libc would be the least inappropriate place. Also, because the UUID functions live in libc under IRIX as well, we have maximized our portability and left as many options open as possible. This implementation introduces an extension not found in the specification: the status parameter is allowed to be a NULL- pointer. The reason for introducing the extension is because the status is almost never of any use. The manpage that's part of this commit is a minimal place-holder and is further fleshed-out in the near future. Approved by: re@ Contributed by: Hiten Mahesh Pandya <hiten@unixdaemons.com> Sponsored by: marcel :-) Tested on: alpha, i386, ia64
OpenPOWER on IntegriCloud