<feed xmlns='http://www.w3.org/2005/Atom'>
<title>monero_c.git, branch v0.18.3.3-RC29</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-RC29</id>
<link rel='self' href='https://git-private.cyanek.com/monero_c.git/atom?h=v0.18.3.3-RC29'/>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/'/>
<updated>2024-04-19T14:44:01+00:00</updated>
<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>
<entry>
<title>legacy code removal + deprecation notice</title>
<updated>2024-04-19T14:28:07+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-19T14:28:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=53816c3610a695ef89827cb0bab9519938f410b7'/>
<id>urn:sha1:53816c3610a695ef89827cb0bab9519938f410b7</id>
<content type='text'>
can't remove the runTHread code just yet as xmruw depends on it, and I don't have enough hours in the day to fix that at the moment.
</content>
</entry>
<entry>
<title>make vectorToString behave as it should, without appending separators when it isn't required</title>
<updated>2024-04-19T14:25:05+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-19T14:25:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=7c0c08627cc18fc82a98ddb0bc8adbb482d35144'/>
<id>urn:sha1:7c0c08627cc18fc82a98ddb0bc8adbb482d35144</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add multi dest tx support</title>
<updated>2024-04-17T14:16:22+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-17T13:55:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=a1d03a28a7e7c10c6a51d3e1de3d6a1fcd24ce30'/>
<id>urn:sha1:a1d03a28a7e7c10c6a51d3e1de3d6a1fcd24ce30</id>
<content type='text'>
</content>
</entry>
<entry>
<title>WIP: cake stuff</title>
<updated>2024-04-15T20:18:55+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-15T20:18:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=19df009754d4c182af650958c6dc7cad8973e36d'/>
<id>urn:sha1:19df009754d4c182af650958c6dc7cad8973e36d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>polyseed fix</title>
<updated>2024-04-15T14:17:54+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-15T14:14:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=1b58a960da7040d17fce1e374d05ffc14947afec'/>
<id>urn:sha1:1b58a960da7040d17fce1e374d05ffc14947afec</id>
<content type='text'>
tobtoht:
Since only the composed languages are broken, it could also be that canonical composition is producing weird output. Try dumping whatever seed string is being fed to polyseed_decode to hex and we should be able to tell.
Or try removing UTF8PROC_LUMP from utf8_nfc
</content>
</entry>
<entry>
<title>Merge pull request #2 from cypherstack/scripts</title>
<updated>2024-04-12T17:23:41+00:00</updated>
<author>
<name>cyan</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-12T17:23:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=365e58bb9f1a489ec4b6bf86ac4159b89d53dc51'/>
<id>urn:sha1:365e58bb9f1a489ec4b6bf86ac4159b89d53dc51</id>
<content type='text'>
fix openssl script re: previous commit</content>
</entry>
</feed>
