From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=qbaDzu0HsIsbuSbgvdgZHyLJt6Oekgf+S3KcgMHFFSk=; b=lYfkAOkJnRTnlo61Ihq3ckPAFEKPbWKDHoPs6Y+JJYue6LVX/0H61FglH0sHpePGm4 5rbGXB2kN9lno5KXKPBhqFkllZMI2V2eHz5Mmqy6qxX4pY2uHG0VdEmOa2ySlT2PEEek lwMzDAUuDk2VLLkFs32hFpr1j6whaJPBzIqSLTAAkXQ09HUkMEHQgQf+YxOoDhRdBtot jxNTisJHpaSEr5fqJuDSleYIeka0+ZDIdawjvDpp4qo+D3Ahovb91iJE4Piu2h7k3nqX q1bWgSqbucjV40+XyIq/YC8IWnJc2rMCXb0TdvjdpQTzdCr+ti4HslYHm/aTBK4IE5uI nUTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=qbaDzu0HsIsbuSbgvdgZHyLJt6Oekgf+S3KcgMHFFSk=; b=lR5gmAoCrkBAYYdBsMcYpJYRHEgoMJcVKfJSCD9S9LeXQyVaYuxev7I2rsrEXX2vi1 /+V4IQ4ELG1c21+jqV8jYmqkAihlHifaiAzGqOFtDP0GxJjT/nt3Q+gbqphXkjusoEfJ 76ciLsCVbBWYGPdo5HlyVBgzczPQ13uwI6iafT/aEC9iMIE5E8eUUxCrKKJQ/xHnf/L0 lAiFNpn1LUWXKlz/5B6b1lQgatCOsuwQiacZjViE8FROVjmwLWu/y5dGGUGMb3D/tAWs nbLlwhxaOU0sXJivFySJoTQnl9SRsG/vLmVwAAIeCu07vpwIsUd1+tJ3m/V3OvdoHwdK YfWw== X-Gm-Message-State: AHQUAuYnAeS1aM0BtQSVAV57N/sQXM6f2lceqnijP/6zxvJd4SYZy9hj SFYEMG3RW8K4SRn89rgXwdp2NnkK X-Google-Smtp-Source: AHgI3IYeZ69FQ6hHQlW8y1KL3HLPR6Whspq8Y4xKYYEqlmUp5CHGJZVHmCZ7RkA0HXe0pplMBQnn3Q== X-Received: by 2002:a2e:9b99:: with SMTP id z25mr3170922lji.106.1550863761204; Fri, 22 Feb 2019 11:29:21 -0800 (PST) To: devel@lists.altlinux.org References: <5d1faa4c-f21b-047b-b8e9-27d28109f0b0@altlinux.org> <20190221132501.GQ10173@altlinux.org> From: Leonid Krivoshein Message-ID: <42f17a50-affe-4c54-99ad-88502a65854f@gmail.com> Date: Fri, 22 Feb 2019 22:27:56 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: <20190221132501.GQ10173@altlinux.org> Content-Type: text/plain; charset=koi8-r; format=flowed Content-Transfer-Encoding: 8bit Content-Language: ru 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: Fri, 22 Feb 2019 19:29:23 -0000 Archived-At: List-Archive: List-Post: 21.02.2019 16:25, Alexey V. Vissarionov пишет: > On 2019-02-21 16:17:07 +0300, Paul Wolneykien wrote: > > > Коллеги, прошу помощи разбором одной проблемы. Предполагаю, > > что это какая-то очевидная ошибка: то ли я действительно не > > умею готовить memcpy(), то ли где-то в программе есть ошибки > > при работе с памятью, которые влияют косвенно (может в данном > > случае такое быть?). > > Итак, у меня есть вот такой код > > >> 1460 if (_data.size % 2 && _data.data[8] == 0x04) { > > (_data.size % 2) лично я поменял бы на (_data.size & 0x01) Да, так на порядок быстрее. > >> 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 } > > Наверняка какая-нибудь грабля с выравниванием... Тут ко всему не очевидное поведение компилятора при работе с адресами, когда их складывают с целыми (много от чего зависит и в ряде случаев просто на ворнинги можно нарваться). Такой код в любом случае сразу переписывать на более безопасный, независимо от memcpy()/memmove(). Например, так: memmove(&_data.data[8], &data.data[9], _data.size - 9); /* если тип данных [unsigned] char */ -- Best regards, Leonid Krivoshein.