Path: csiph.com!xmission!news.snarked.org!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail From: Roland Illig Newsgroups: gnu.chess.bug Subject: Bugs in PGNSaveToFile Date: Sun, 15 Jul 2018 22:26:06 +0200 Lines: 24 Approved: bug-gnu-chess@gnu.org Message-ID: NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: usenet.stanford.edu 1531706791 31892 208.118.235.17 (16 Jul 2018 02:06:31 GMT) X-Complaints-To: action@cs.stanford.edu To: bug-gnu-chess@gnu.org Envelope-to: bug-gnu-chess@gnu.org Openpgp: preference=signencrypt Autocrypt: addr=roland.illig@gmx.de; prefer-encrypt=mutual; keydata= xsFNBFTDftcBEAC9aYSp8L57/Zp/ToQ8OMRNIoBqNNWF6pygl58AW1uiL8ewruCBWVpROvjR zpccRHhpLNu/HqOI70F2Lr1EMIfNgKTNWjAoVEg/NM6JtyPP46p3KHJDNENCCgNBAlQtsJyn 4eH66hGuEUXngSEs9FGJIBFb/dWx3Bmk4EbGsPb7wjUqu69iXiTcq0BB/kFsvQdtWpfeAMO+ V/wpcP0k9/PLM7Njfl3dCeHGqXfEoEksmpFLjqWgn7TVZphcfQqOTRBO4eBJV1Nj+9qfuVRN 8w2ZMtZrcBAb5P1KuSN5szL/xZ/HV/xKsaIkdYKOaRg4IvYFdXb5oXLVJEYTz6pGLmGrVrP7 GGtVJGdkxQxMthtiG2lxhG2aFKZoJr2JGNEN9p5e6tmQnkuIheUQm/RSG2s1NcaDk3Oje3RD X6S7KwsWfXvKejhQqRu7XW9k6WcbGyjIZRDulkXZ4EuBL9rJA/1OkNUU1b91mFlyIrBQyrT/ douwRCtwfMxC5RshA4PpXXdr6wD987n3yzVRzv5kODlMYg5huN7YLnhaseC+5hfGCx7Icf9e 1rB+a7TvnWmDiOY0oITnC6A+IX/8UebkhAjdxi5ZMY7Mzzk5Iak4hgsQod+M9UoEfRMZ5v3R kDfZvvqF3nOx32oa129czT5OYSzhuZJIw5KSeDJ6P1maPJHa8wARAQABzSJSb2xhbmQgSWxs aWcgPHJvbGFuZC5pbGxpZ0BnbXguZGU+wsF+BBMBAgAoBQJUw37XAhsjBQkJZgGABgsJCAcD AgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBK0bmztFpY8LsBD/0bwYpdETviRgEehQ18IQKNXc7O C6a8ygDDjA4Z/JPAFcC+paknwOiCvBR/upXrdwo3bLC4r12IsJ12zGQKkjMaJ1GhqR7yFzD7 hDIpFdbdD+PQGHSCLNawzYRry168mtwAZ/1Bl8T+b5K/qhV+tKuAjhSnTtCsagSTdsCFEcaM gDEAyyyf/Uwk3ARR4uK//gp0nvaRnJH/Uy4QRAXVuVeG9coa9B3+L3WJQHv33RnHVsfiECdO Jbo2wJjpnTWP1g1tjOBWQhl5gn6WCtOwDZHe0vqINpm8n3W/LGAsvOS47XfLM1lK2j/ZPgTx SYKbUN6T3lk1FhFqtHEK7aOXvu2KcfehTC2mZo7JQu/BI4iNgPbSG7/tb+2PqTwkuhkWCFch 1XJOIT1pplJjRVf/oNmHAMpCxXHAV8D1L9pTWexyneor4jnawrhn32fdYyL30UYSRienNA3M LNWcPfoa3oHzsjogSFxfQMZc1dQJ28MCKJE5v1iAzyE3Em9QrmQMRsrgAUaPhJZPeFQ8Rwm+ 9Mg9I4z0aiqEacYtgi93bYFbLEl+BTeqk+a/mGHT29KBQf7VwQKW+zgX5HtY2iXZSHHblhkc a38G62jrgrmLf1QupVYe971gLtjomD75GSc3ZQwkjZt2G28o0N5XN94rd1zDrsAKz/B7RUPW 6RV4to7RDc7BTQRUw37XARAAxLgrihdVjY3oOOhyepsqy1E4slLyV6TjVqYlxxKl/QCHVxAf 5x5r+ZE8Y69GU0k9PBfeonK1q3eiVw00/mDy7qvloKqg7w0hjQjuaZb+GeB9CyEcGeGk01Ei mkFE/voRPz8BsJgtRafwTfOuMa6jeTINYG3TVizGvji+kXNBsb/woOhLF3ywAp8Nuw58SyxU vjAMZZmKe64IllsDRN7+p4wauXv55alTPX8vYk65bYxHT7iqbOn9UyEoWWleifhggPXoM6AU 7WRKX5nugiaOJ0yQz9FssQzrL405hiQ2QY568RYKkBsgyl3Vm0Ca4/KgCNbATktYLKSzVGiL s/nkIhWBhr+bUsTKQUSDh6MIqLdJXf+yI0Nn4OJUeJohzBCNDAHyw0GJpB1B4PId5nC+9WmB 61q6xtUugFoG7kIa9njky3RY6ZWcooEZblGIT9m/1Qz+VpC/28D1OT1554v8VV9rd0QV8gdi k2OYDhScmltS9YVSjrsXoYaxDMw252ks8chC5vUNvLcI0B3JSV765UO3NIqRFgKtYL0E22Uy 2WbzjMQHyWjz0fKgSCZCBB4X1rBau3U86Z2WobHARVvrbEHhGJIbCHVfM+dvF93EUGCtA1Ru aReqRidcf6sV4ZJfDQjzCnnzzcpt0N8xjIK3ZKVSoTzECUV4OIi71p4u4Q0AEQEAAcLBZQQY AQIADwUCVMN+1wIbDAUJCWYBgAAKCRBK0bmztFpY8EeRD/0UzV8+0WT1eCdsGaSjtKhF9DtI eVlPiE8taBzAnPrYAwSoXikK9KJ5oVFfD8lxwkFkUD35liHkTWWvH8N9+j6wCNhMBtV3dJw8 JSM8l/DO6WHhoe+YsMMW1Taz33WzeNba99JhJi7fk0w5hJjBeLIxXPgoW8bJTBzl8wqHkeKb DSFayx6apEOS8n8Oi63DOTTW/NgnN2IjcwT8UNZ+Tuc5JJI12sOvvkkBh0oYKqbyxx0uJeJP rvczWm1Q04HrG0Ycp3WgoeE1jhi5i1ahLw/bA4wMy1dfcRJN6MBSDABGtb4AL2DAKB0M7qGM GtjRJrgngmkTUclhHJI1KteQ+kJNWYsIGmZLTABQ6nn+dFzznZ7L4lCeiYA2QFO9wKSK7780 MtiZtbqiQ0HXpaI+CtekPKQXBektZdyqmks8Y4gXkH0LMI/0q3wpmznnL4VVk4dRZMW6M615 O7kzQIuUKgBYwAHRNJA4k8PtDx/sqmIiedunwTM+00otwOHEKEIo3wVQnI9XuMb+gQt0cJQV qwsQYI+OJD70PDeWnsjRyQAaBpoPn1P28Ixa6+S0Zwp9rrOLhWnKsyV/SleboL6+u4JUNOCq vG70x7k4DE7Z+6NMMKgkWyiEo+fUgDkAdo8wrTwClzP58UTta149JPwzmXMzH+8FUazUfa3l gUCywTy00g== User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 Content-Language: de-DE X-Provags-ID: V03:K1:w6euHZoUas+6Oc6krBsBjq5WnDTkftWEDsSKAZ2/9SCvBpIR8hh UIVBbSEEDhSbDC8NQkqp4WDypghCdMBFZVGYWbkm4f5nm4xrW/cu/r9EgZAVX0ZplHXeoGL hc/FFrQ1k+2PpFF574+AUx7sqtsX8rWL3GNmy4QaWzMp/GYiZA4qJTU8VQ+GV0D5+UFouLQ dZhGDZDy2pkOHstP0ZsNA== X-UI-Out-Filterresults: notjunk:1;V01:K0:VbgtncYQK9s=:qTig2kn2GL7TI5+zlYqBYc qEIa3kdsIsWbekNd61emlF91yCB0sf75Flc/ljVBV8sPkMpdhj1TV8De/9vgaMh8KNXIAz0rg BX9ewpcGOyleLQbeMw3yCqYrSV05Jt/n046qvFoeODskG5ySmZrdC4RfIEcOtitmO/J2ML9mt FPNb50r4DvR0yU5Wy3MK8AfeMq+1MmVImD2XPqZ3jPQCfewJLd6pSn1tfIWSq3fzjyyW3U3Ya 0s6r1X+sy4ApsfS8Ub3K/QyW/Wp2ljVnkATwJtiffGZjzJH0NpbmYQcC7RyFiirYeXNn3+vT1 /iwgV4zEUOl/A6LFvz0YfUOpd+a2VTJ6YxH1zbV5nav2Oh+UgaPXrvlrq3wnh+S9HJZ2AlkHr HKL3lrxUpUBtMsUIa8WWwcd5h2lz66iABfhBU5CYNOGQ6n7sVzST1FYphXZkIwnj40tANUUiy Q/1EA5WLmqrSMUDnZfJAtGgIKWzRRZtEH2Z9L+gopNlS0Ja2hs6DbgnuWDXUDgjTPBcmXWx2y 9ttgA8lQe9vodEFwxL5QdiufFXP6Mj24msDAe+7fakqNDYjl/lwoYbxGdDvPNYPtSXH7YbbeC E1MUdcwgQi83M3uM9CVEr01et9US7ddUMByGphs83AK10/qUJTdedqnuvo4OTkoUJXKvbLaNX MHb9QHzQJPTRLSt457Iac/pJXmrcqVVoVKWDmMC62OUbloe6cbbmpiZ6xFT1X6I3+Ld6VPldt WTV2JlutlHHbLyE08WX8ar28F02e+CVtgapTlDPFvvTg7SQKVWQirEK4GltBef3FSXmGbC7xb ANax+yE X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.15.15 X-Mailman-Approved-At: Sun, 15 Jul 2018 22:06:29 -0400 X-BeenThere: bug-gnu-chess@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Bug reports for GNU Chess List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Xref: csiph.com gnu.chess.bug:7 Dear GNU Chess developers, while translating GNU Chess into German, I stumbled upon the PGNSaveToFile function and noticed some bugs: * The result of getchar() is saved in a char variable. That variable is later passed to tolower, resulting in undefined behavior. The variable type should be int. * If the input stream ends during "while( getchar() != '\n' )", the program gets stuck in a CPU-consuming endless loop. * In that same loop, the parenthesis is placed wrong. This is just a formatting issue. The formatting in this function is inconsistent in several other places, too. * The code explicitly checks for the characters "yn", which only works well for English. For example, German requires "jn", French requires "on", Spanish requires "sn". It would be better to use the rpmatch function instead. Best, Roland