error: fix handling of error codes

GCC correctly warning as follows:

```
    inlined from ‘slp::buffer slp::handler::processError(const slp::Message&, uint8_t)’ at slp_message_handler.cpp:363:16:
/usr/lib/gcc/x86_64-pc-linux-gnu/12/include/g++-v12/bits/stl_algobase.h:431:30: warning: ‘void* __builtin_memmove(void*, const void*, long unsigned int)’ reading 2 bytes from a region of size 1 [-Wstringop-overread]
  431 |             __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
      |             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
slp_message_handler.cpp: In function ‘slp::buffer slp::handler::processError(const slp::Message&, uint8_t)’:
slp_message_handler.cpp:358:49: note: source object ‘err’ of size 1
```

We were taking the address of a `uint8_t` and copying two bytes of it.

The original code was not correct anyhow because it used a static
OFFSET_ERROR constant.  The location of errors is not constant because
it depends on the length of the language tag.  Modify the code to
correctly place the 1 byte error type into the 2nd byte of the error
field, which is calculated as immediately after the language tag.

Change-Id: I1bee6bdb1b6301403cf1dff319641587c683f799
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
2 files changed