*** uuid.c.org Tue Jan 1 21:31:22 2008 --- uuid.c Sun Feb 10 19:22:20 2008 *************** *** 87,93 **** int src_len; src_len = strlen(source); ! if (src_len != 32 && src_len != 36 && src_len != 38) goto syntax_error; if (src_len == 32) --- 87,93 ---- int src_len; src_len = strlen(source); ! if (src_len != 32 && src_len != 35 && src_len != 36 && src_len != 38) goto syntax_error; if (src_len == 32) *************** *** 104,118 **** str++; /* skip the first character */ } ! if (str[8] != '-' || str[13] != '-' || ! str[18] != '-' || str[23] != '-') ! goto syntax_error; ! memcpy(hex_buf, str, 8); ! memcpy(hex_buf + 8, str + 9, 4); ! memcpy(hex_buf + 12, str + 14, 4); ! memcpy(hex_buf + 16, str + 19, 4); ! memcpy(hex_buf + 20, str + 24, 12); } for (i = 0; i < UUID_LEN; i++) --- 104,132 ---- str++; /* skip the first character */ } ! if (src_len == 35) ! { ! if (str[8] != '-' || str[13] != '-' || ! str[18] != '-') ! goto syntax_error; ! ! memcpy(hex_buf, str, 8); ! memcpy(hex_buf + 8, str + 9, 4); ! memcpy(hex_buf + 12, str + 14, 4); ! memcpy(hex_buf + 16, str + 19, 16); ! } ! else ! { ! if (str[8] != '-' || str[13] != '-' || ! str[18] != '-' || str[23] != '-') ! goto syntax_error; ! memcpy(hex_buf, str, 8); ! memcpy(hex_buf + 8, str + 9, 4); ! memcpy(hex_buf + 12, str + 14, 4); ! memcpy(hex_buf + 16, str + 19, 4); ! memcpy(hex_buf + 20, str + 24, 12); ! } } for (i = 0; i < UUID_LEN; i++)