<feed xmlns='http://www.w3.org/2005/Atom'>
<title>monero_c.git, branch v0.18.3.3-RC35</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git-private.cyanek.com/monero_c.git/atom?h=v0.18.3.3-RC35</id>
<link rel='self' href='https://git-private.cyanek.com/monero_c.git/atom?h=v0.18.3.3-RC35'/>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/'/>
<updated>2024-04-22T14:14:52+00:00</updated>
<entry>
<title>yet another difference in wow...</title>
<updated>2024-04-22T14:14:52+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-22T14:14:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=36e61433c78750317ced29f0fc94ad22af16111d'/>
<id>urn:sha1:36e61433c78750317ced29f0fc94ad22af16111d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>sync changes to wownero. Wow.</title>
<updated>2024-04-22T13:33:09+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-22T13:33:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=fdd5c6848ba2ce83bfe6cd5cb261ec774f0de63d'/>
<id>urn:sha1:fdd5c6848ba2ce83bfe6cd5cb261ec774f0de63d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add missing functionality from for cake's polyseed implementation</title>
<updated>2024-04-22T10:49:17+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-22T10:49:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=7e49b4ad69e6e66696f5ce38ff4f1bc2ffe169cd'/>
<id>urn:sha1:7e49b4ad69e6e66696f5ce38ff4f1bc2ffe169cd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>update polyseed commit</title>
<updated>2024-04-22T07:33:21+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-22T07:33:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=90658235f6ff166e8252dbb17e798c73c9d77ac2'/>
<id>urn:sha1:90658235f6ff166e8252dbb17e798c73c9d77ac2</id>
<content type='text'>
change POLYSEED_COIN to wownero in the fork
update wownero patches
</content>
</entry>
<entry>
<title>fix memory allocation issue</title>
<updated>2024-04-20T14:52:51+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-20T14:52:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=b736b3e465e2265711bd38289b202b7a4b0c2f02'/>
<id>urn:sha1:b736b3e465e2265711bd38289b202b7a4b0c2f02</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix signature</title>
<updated>2024-04-20T13:27:51+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-20T13:27:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=162dfa6683f6205583468b94bf68ff4fc9de5daf'/>
<id>urn:sha1:162dfa6683f6205583468b94bf68ff4fc9de5daf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>unsigned long long</title>
<updated>2024-04-19T14:44:01+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-19T14:44:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=6dfe04ddd7c7f936f0505baf4cdf0f7992a8f614'/>
<id>urn:sha1:6dfe04ddd7c7f936f0505baf4cdf0f7992a8f614</id>
<content type='text'>
</content>
</entry>
<entry>
<title>iOS build: do not fail due to mv: Directory not empty</title>
<updated>2024-04-19T14:39:09+00:00</updated>
<author>
<name>sneurlax</name>
<email>sneurlax@gmail.com</email>
</author>
<published>2024-04-12T18:43:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=b98653c32f602b29738fcf6813400a39b8816711'/>
<id>urn:sha1:b98653c32f602b29738fcf6813400a39b8816711</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix regarding the issues raised during security audit</title>
<updated>2024-04-19T14:37:42+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-19T14:37:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=22f6fb4b63b96fcd9371d019fa323efcd1da1eef'/>
<id>urn:sha1:22f6fb4b63b96fcd9371d019fa323efcd1da1eef</id>
<content type='text'>
In the polyseed-examples repository, the `utf8_nfc` and `utf8_nfkd` functions will never return a value exceeding `POLYSEED_STR_SIZE - 1`
In your code, the utf8_norm function has variable return behavior that seems odd
In case of a normalization error, the underlying normalizer will return a negative value, at which point your function just returns POLYSEED_STR_SIZE (this is unclear)
In case the buffer isn't large enough, the normalizer will return the required buffer size but have undefined internal behavior, at which point your function returns a value exceeding POLYSEED_STR_SIZE
Otherwise, it uses the normalizer's return value (indicating the written size) to continue with re-encoding

tobtoht: Czarek Nakamoto: polyseed asserts that the return value &lt; POLYSEED_STR_SIZE, so if normalization fails the program crashes..
&gt; I think my idea was to have have polyseed check the return value and return an error code instead of asserting, which would in turn throw the "Unicode normalization failed" error
&gt; I'll upstream that. In the meantime you can replace the injected function with
```cpp
    inline size_t utf8_norm(const char* str, polyseed_str norm, utf8proc_option_t options) {
      utf8proc_int32_t buffer[POLYSEED_STR_SIZE];
      utf8proc_ssize_t result;

      result = utf8proc_decompose(reinterpret_cast&lt;const uint8_t*&gt;(str), 0, buffer, POLYSEED_STR_SIZE, options);
      if (result &lt; 0 || result &gt; (POLYSEED_STR_SIZE - 1)) {
        throw std::runtime_error("Unicode normalization failed");
      }

      result = utf8proc_reencode(buffer, result, options);
      if (result &lt; 0 || result &gt; POLYSEED_STR_SIZE) {
        throw std::runtime_error("Unicode normalization failed");
      }

      strcpy(norm, reinterpret_cast&lt;const char*&gt;(buffer));
      sodium_memzero(buffer, sizeof(buffer));
      return result;
    }
```
</content>
</entry>
<entry>
<title>Wallet::reconnectDevice implementation</title>
<updated>2024-04-19T14:28:59+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-19T14:28:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=05569f7b80560271071fc2bea46836b40a3f8277'/>
<id>urn:sha1:05569f7b80560271071fc2bea46836b40a3f8277</id>
<content type='text'>
</content>
</entry>
</feed>
