From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: To: devel@lists.altlinux.org References: <5d1faa4c-f21b-047b-b8e9-27d28109f0b0@altlinux.org> From: Paul Wolneykien Organization: ALT Linux Team Message-ID: <0dce9499-0a37-c33d-2b45-5a5d357423fe@altlinux.org> Date: Thu, 21 Feb 2019 16:28:53 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: ru Content-Transfer-Encoding: 8bit Subject: Re: [devel] =?utf-8?b?bWVtY3B5INCz0LvRjtGH0LjRgiAo0LjQu9C4INGPINC9?= =?utf-8?b?0LUg0YPQvNC10Y4g0LXQs9C+INCz0L7RgtC+0LLQuNGC0Ywp?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Feb 2019 13:28:54 -0000 Archived-At: List-Archive: List-Post: 21.02.2019 16:22, Vladimir Didenko пишет: > чт, 21 февр. 2019 г. в 16:17, Paul Wolneykien: >> >> >> Коллеги, прошу помощи разбором одной проблемы. Предполагаю, что это >> какая-то очевидная ошибка: то ли я действительно не умею готовить >> memcpy(), то ли где-то в программе есть ошибки при работе с памятью, >> которые влияют косвенно (может в данном случае такое быть?). >> >> Итак, у меня есть вот такой код¹ >> >>> 1460 if (_data.size % 2 && _data.data[8] == 0x04) { >>> 1461 // Uncompressed point (the first 8 bytes is the UKM) >>> 1462 memcpy (_data.data + 8, _data.data + 9, _data.size - 9); >>> 1463 _data.size--; >>> 1464 } >> > > У вас участки памяти источника и приемника перекрываются, а это > неопределенное поведение. Вам memove() нужен. Как интересно. Спасибо!