{"action":"created","issue":{"url":"https://api.github.com/repos/vermaseren/form/issues/191","repository_url":"https://api.github.com/repos/vermaseren/form","labels_url":"https://api.github.com/repos/vermaseren/form/issues/191/labels{/name}","comments_url":"https://api.github.com/repos/vermaseren/form/issues/191/comments","events_url":"https://api.github.com/repos/vermaseren/form/issues/191/events","html_url":"https://github.com/vermaseren/form/issues/191","id":233811280,"number":191,"title":"gcd_ crashes for zero $-variables","user":{"login":"tueda","id":1481665,"avatar_url":"https://avatars3.githubusercontent.com/u/1481665?v=3","gravatar_id":"","url":"https://api.github.com/users/tueda","html_url":"https://github.com/tueda","followers_url":"https://api.github.com/users/tueda/followers","following_url":"https://api.github.com/users/tueda/following{/other_user}","gists_url":"https://api.github.com/users/tueda/gists{/gist_id}","starred_url":"https://api.github.com/users/tueda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tueda/subscriptions","organizations_url":"https://api.github.com/users/tueda/orgs","repos_url":"https://api.github.com/users/tueda/repos","events_url":"https://api.github.com/users/tueda/events{/privacy}","received_events_url":"https://api.github.com/users/tueda/received_events","type":"User","site_admin":false},"labels":[{"id":55951990,"url":"https://api.github.com/repos/vermaseren/form/labels/bug","name":"bug","color":"fc2929","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2017-06-06T08:08:48Z","updated_at":"2017-06-07T15:26:11Z","closed_at":null,"body":"`gcd_` has a memory bug when the first argument is a zero $-variable.\r\n```\r\n#$a = 0;\r\n#$b = 1;\r\n#$c = gcd_($a,$b);  * must be 1\r\n.end\r\n```\r\n```\r\nFORM 4.1 (May 24 2017, v4.1-20131025-346-gcf71752) 64-bits  Run: Tue Jun  6 10:05:01 2017\r\n    #$a = 0;\r\n    #$b = 1;\r\n*** glibc detected *** form: free(): invalid next size (fast): 0x0000000002518430 ***\r\n======= Backtrace: =========\r\n/lib64/libc.so.6[0x32e1275f3e]\r\n/lib64/libc.so.6[0x32e1278dd0]\r\nform[0x5406fd]\r\nform[0x52c4cf]\r\nform[0x447eb3]\r\nform[0x51e275]\r\nform[0x4032e8]\r\n/lib64/libc.so.6(__libc_start_main+0xfd)[0x32e121ed1d]\r\nform[0x403325]\r\n======= Memory map: ========\r\n00400000-0060f000 r-xp 00000000 fd:03 7088816                            /localstore/theorie/tueda/build/linuxbrew/Cellar/form/HEAD-cf71752/bin/form\r\n0080f000-00810000 r--p 0020f000 fd:03 7088816                            /localstore/theorie/tueda/build/linuxbrew/Cellar/form/HEAD-cf71752/bin/form\r\n00810000-00814000 rw-p 00210000 fd:03 7088816                            /localstore/theorie/tueda/build/linuxbrew/Cellar/form/HEAD-cf71752/bin/form\r\n00814000-0086d000 rw-p 00000000 00:00 0\r\n024ea000-02569000 rw-p 00000000 00:00 0                                  [heap]\r\n32e0e00000-32e0e20000 r-xp 00000000 fd:00 651535                         /lib64/ld-2.12.so\r\n32e101f000-32e1021000 r--p 0001f000 fd:00 651535                         /lib64/ld-2.12.so\r\n32e1021000-32e1022000 rw-p 00021000 fd:00 651535                         /lib64/ld-2.12.so\r\n32e1022000-32e1023000 rw-p 00000000 00:00 0\r\n32e1200000-32e138a000 r-xp 00000000 fd:00 651536                         /lib64/libc-2.12.so\r\n32e138a000-32e158a000 ---p 0018a000 fd:00 651536                         /lib64/libc-2.12.so\r\n32e158a000-32e158e000 r--p 0018a000 fd:00 651536                         /lib64/libc-2.12.so\r\n32e158e000-32e1590000 rw-p 0018e000 fd:00 651536                         /lib64/libc-2.12.so\r\n32e1590000-32e1594000 rw-p 00000000 00:00 0\r\n32e1600000-32e1683000 r-xp 00000000 fd:00 651538                         /lib64/libm-2.12.so\r\n32e1683000-32e1882000 ---p 00083000 fd:00 651538                         /lib64/libm-2.12.so\r\n32e1882000-32e1883000 r--p 00082000 fd:00 651538                         /lib64/libm-2.12.so\r\n32e1883000-32e1884000 rw-p 00083000 fd:00 651538                         /lib64/libm-2.12.so\r\n32e8600000-32e8656000 r-xp 00000000 fd:00 807941                         /usr/lib64/libgmp.so.3.5.0\r\n32e8656000-32e8856000 ---p 00056000 fd:00 807941                         /usr/lib64/libgmp.so.3.5.0\r\n32e8856000-32e885b000 rw-p 00056000 fd:00 807941                         /usr/lib64/libgmp.so.3.5.0\r\n7ff3c8000000-7ff3c8021000 rw-p 00000000 00:00 0\r\n7ff3c8021000-7ff3cc000000 ---p 00000000 00:00 0\r\n7ff3cc9c8000-7ff3e54b5000 rw-p 00000000 00:00 0\r\n7ff3e54b5000-7ff3e54c6000 r-xp 00000000 fd:03 17969798                   /localstore/theorie/tueda/build/linuxbrew/Cellar/gcc/5.3.0/lib/libgcc_s.so.1\r\n7ff3e54c6000-7ff3e56c6000 ---p 00011000 fd:03 17969798                   /localstore/theorie/tueda/build/linuxbrew/Cellar/gcc/5.3.0/lib/libgcc_s.so.1\r\n7ff3e56c6000-7ff3e56c7000 rw-p 00011000 fd:03 17969798                   /localstore/theorie/tueda/build/linuxbrew/Cellar/gcc/5.3.0/lib/libgcc_s.so.1\r\n7ff3e56c7000-7ff3e56c8000 rw-p 00000000 00:00 0\r\n7ff3e56c8000-7ff3e57f4000 r-xp 00000000 fd:03 17971137                   /localstore/theorie/tueda/build/linuxbrew/Cellar/gcc/5.3.0/lib/libstdc++.so.6.0.21\r\n7ff3e57f4000-7ff3e59f4000 ---p 0012c000 fd:03 17971137                   /localstore/theorie/tueda/build/linuxbrew/Cellar/gcc/5.3.0/lib/libstdc++.so.6.0.21\r\n7ff3e59f4000-7ff3e59fe000 r--p 0012c000 fd:03 17971137                   /localstore/theorie/tueda/build/linuxbrew/Cellar/gcc/5.3.0/lib/libstdc++.so.6.0.21\r\n7ff3e59fe000-7ff3e5a02000 rw-p 00136000 fd:03 17971137                   /localstore/theorie/tueda/build/linuxbrew/Cellar/gcc/5.3.0/lib/libstdc++.so.6.0.21\r\n7ff3e5a02000-7ff3e5a06000 rw-p 00000000 00:00 0\r\n7ff3e5a26000-7ff3e5a38000 r-xp 00000000 fd:03 20726621                   /localstore/theorie/tueda/build/linuxbrew/Cellar/zlib/1.2.11/lib/libz.so.1.2.11\r\n7ff3e5a38000-7ff3e5c37000 ---p 00012000 fd:03 20726621                   /localstore/theorie/tueda/build/linuxbrew/Cellar/zlib/1.2.11/lib/libz.so.1.2.11\r\n7ff3e5c37000-7ff3e5c38000 rw-p 00011000 fd:03 20726621                   /localstore/theorie/tueda/build/linuxbrew/Cellar/zlib/1.2.11/lib/libz.so.1.2.11\r\n7ff3e5c38000-7ff3e5c39000 rw-p 00000000 00:00 0\r\n7ffd711fe000-7ffd71219000 rw-p 00000000 00:00 0                          [stack]\r\n7ffd71349000-7ffd7134a000 r-xp 00000000 00:00 0                          [vdso]\r\nffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]\r\nAborted (core dumped)\r\n```\r\nValgrind output:\r\n```\r\n==30839== Memcheck, a memory error detector\r\n==30839== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.\r\n==30839== Using Valgrind-3.12.0 and LibVEX; rerun with -h for copyright info\r\n==30839== Command: vorm 1\r\n==30839==\r\nFORM 4.1 (May 24 2017, v4.1-20131025-346-gcf71752) 64-bits  Run: Tue Jun  6 10:05:51 2017\r\n    #$a = 0;\r\n    #$b = 1;\r\n==30839== Conditional jump or move depends on uninitialised value(s)\r\n==30839==    at 0x4BFADB: GCDterms (ratio.c:2063)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Conditional jump or move depends on uninitialised value(s)\r\n==30839==    at 0x4C0082: GCDterms (ratio.c:2066)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Conditional jump or move depends on uninitialised value(s)\r\n==30839==    at 0x4C009F: GCDterms (ratio.c:2225)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Conditional jump or move depends on uninitialised value(s)\r\n==30839==    at 0x4C00B8: GCDterms (ratio.c:2225)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Conditional jump or move depends on uninitialised value(s)\r\n==30839==    at 0x4CA7C9: AccumGCD (reken.c:653)\r\n==30839==    by 0x4C00F6: GCDterms (ratio.c:2228)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Conditional jump or move depends on uninitialised value(s)\r\n==30839==    at 0x4C4FE1: UnPack (reken.c:104)\r\n==30839==    by 0x4CA80D: AccumGCD (reken.c:655)\r\n==30839==    by 0x4C00F6: GCDterms (ratio.c:2228)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Conditional jump or move depends on uninitialised value(s)\r\n==30839==    at 0x4C4FF2: UnPack (reken.c:106)\r\n==30839==    by 0x4CA80D: AccumGCD (reken.c:655)\r\n==30839==    by 0x4C00F6: GCDterms (ratio.c:2228)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Conditional jump or move depends on uninitialised value(s)\r\n==30839==    at 0x4C502E: UnPack (reken.c:114)\r\n==30839==    by 0x4CA80D: AccumGCD (reken.c:655)\r\n==30839==    by 0x4C00F6: GCDterms (ratio.c:2228)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Conditional jump or move depends on uninitialised value(s)\r\n==30839==    at 0x4C79DA: GcdLong (reken.c:2275)\r\n==30839==    by 0x4CA83D: AccumGCD (reken.c:657)\r\n==30839==    by 0x4C00F6: GCDterms (ratio.c:2228)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Conditional jump or move depends on uninitialised value(s)\r\n==30839==    at 0x4C79E4: GcdLong (reken.c:2276)\r\n==30839==    by 0x4CA83D: AccumGCD (reken.c:657)\r\n==30839==    by 0x4C00F6: GCDterms (ratio.c:2228)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Conditional jump or move depends on uninitialised value(s)\r\n==30839==    at 0x4C7A01: GcdLong (reken.c:2283)\r\n==30839==    by 0x4CA83D: AccumGCD (reken.c:657)\r\n==30839==    by 0x4C00F6: GCDterms (ratio.c:2228)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Use of uninitialised value of size 8\r\n==30839==    at 0x4CA85C: AccumGCD (reken.c:659)\r\n==30839==    by 0x4C00F6: GCDterms (ratio.c:2228)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Conditional jump or move depends on uninitialised value(s)\r\n==30839==    at 0x4C79DA: GcdLong (reken.c:2275)\r\n==30839==    by 0x4CA88D: AccumGCD (reken.c:660)\r\n==30839==    by 0x4C00F6: GCDterms (ratio.c:2228)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Conditional jump or move depends on uninitialised value(s)\r\n==30839==    at 0x4C79E4: GcdLong (reken.c:2276)\r\n==30839==    by 0x4CA88D: AccumGCD (reken.c:660)\r\n==30839==    by 0x4C00F6: GCDterms (ratio.c:2228)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Conditional jump or move depends on uninitialised value(s)\r\n==30839==    at 0x4C7A01: GcdLong (reken.c:2283)\r\n==30839==    by 0x4CA88D: AccumGCD (reken.c:660)\r\n==30839==    by 0x4C00F6: GCDterms (ratio.c:2228)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Use of uninitialised value of size 8\r\n==30839==    at 0x4CA8B2: AccumGCD (reken.c:662)\r\n==30839==    by 0x4C00F6: GCDterms (ratio.c:2228)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Use of uninitialised value of size 8\r\n==30839==    at 0x4C4FAB: Pack (reken.c:86)\r\n==30839==    by 0x4CA8CF: AccumGCD (reken.c:663)\r\n==30839==    by 0x4C00F6: GCDterms (ratio.c:2228)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Use of uninitialised value of size 8\r\n==30839==    at 0x4C4FAE: Pack (reken.c:86)\r\n==30839==    by 0x4CA8CF: AccumGCD (reken.c:663)\r\n==30839==    by 0x4C00F6: GCDterms (ratio.c:2228)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Invalid write of size 4\r\n==30839==    at 0x4C4FAE: Pack (reken.c:86)\r\n==30839==    by 0x4CA8CF: AccumGCD (reken.c:663)\r\n==30839==    by 0x4C00F6: GCDterms (ratio.c:2228)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==  Address 0x5708928 is 0 bytes after a block of size 72 alloc'd\r\n==30839==    at 0x4A05A57: malloc (vg_replace_malloc.c:299)\r\n==30839==    by 0x4FE1DF: Malloc1 (tools.c:2236)\r\n==30839==    by 0x42FDFC: DolToTerms (dollar.c:1539)\r\n==30839==    by 0x4C10C2: GCDfunction (ratio.c:969)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Use of uninitialised value of size 8\r\n==30839==    at 0x4C0148: GCDterms (ratio.c:2235)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Invalid write of size 4\r\n==30839==    at 0x4C0148: GCDterms (ratio.c:2235)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==  Address 0x570892c is 4 bytes after a block of size 72 alloc'd\r\n==30839==    at 0x4A05A57: malloc (vg_replace_malloc.c:299)\r\n==30839==    by 0x4FE1DF: Malloc1 (tools.c:2236)\r\n==30839==    by 0x42FDFC: DolToTerms (dollar.c:1539)\r\n==30839==    by 0x4C10C2: GCDfunction (ratio.c:969)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Invalid write of size 4\r\n==30839==    at 0x4C015C: GCDterms (ratio.c:2236)\r\n==30839==    by 0x4C1211: GCDfunction (ratio.c:1000)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==  Address 0x5708930 is 8 bytes after a block of size 72 alloc'd\r\n==30839==    at 0x4A05A57: malloc (vg_replace_malloc.c:299)\r\n==30839==    by 0x4FE1DF: Malloc1 (tools.c:2236)\r\n==30839==    by 0x42FDFC: DolToTerms (dollar.c:1539)\r\n==30839==    by 0x4C10C2: GCDfunction (ratio.c:969)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Conditional jump or move depends on uninitialised value(s)\r\n==30839==    at 0x4C121E: GCDfunction (ratio.c:1001)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Invalid read of size 4\r\n==30839==    at 0x4C1228: GCDfunction (ratio.c:1001)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==  Address 0x5708928 is 0 bytes after a block of size 72 alloc'd\r\n==30839==    at 0x4A05A57: malloc (vg_replace_malloc.c:299)\r\n==30839==    by 0x4FE1DF: Malloc1 (tools.c:2236)\r\n==30839==    by 0x42FDFC: DolToTerms (dollar.c:1539)\r\n==30839==    by 0x4C10C2: GCDfunction (ratio.c:969)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Invalid read of size 4\r\n==30839==    at 0x4C1230: GCDfunction (ratio.c:1001)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==  Address 0x570892c is 4 bytes after a block of size 72 alloc'd\r\n==30839==    at 0x4A05A57: malloc (vg_replace_malloc.c:299)\r\n==30839==    by 0x4FE1DF: Malloc1 (tools.c:2236)\r\n==30839==    by 0x42FDFC: DolToTerms (dollar.c:1539)\r\n==30839==    by 0x4C10C2: GCDfunction (ratio.c:969)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Use of uninitialised value of size 8\r\n==30839==    at 0x4C1260: GCDfunction (ratio.c:1007)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Invalid read of size 4\r\n==30839==    at 0x4C1260: GCDfunction (ratio.c:1007)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==  Address 0x570892c is 4 bytes after a block of size 72 alloc'd\r\n==30839==    at 0x4A05A57: malloc (vg_replace_malloc.c:299)\r\n==30839==    by 0x4FE1DF: Malloc1 (tools.c:2236)\r\n==30839==    by 0x42FDFC: DolToTerms (dollar.c:1539)\r\n==30839==    by 0x4C10C2: GCDfunction (ratio.c:969)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Use of uninitialised value of size 8\r\n==30839==    at 0x4C1274: GCDfunction (ratio.c:1008)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Invalid read of size 4\r\n==30839==    at 0x4C1274: GCDfunction (ratio.c:1008)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==  Address 0x570892c is 4 bytes after a block of size 72 alloc'd\r\n==30839==    at 0x4A05A57: malloc (vg_replace_malloc.c:299)\r\n==30839==    by 0x4FE1DF: Malloc1 (tools.c:2236)\r\n==30839==    by 0x42FDFC: DolToTerms (dollar.c:1539)\r\n==30839==    by 0x4C10C2: GCDfunction (ratio.c:969)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Conditional jump or move depends on uninitialised value(s)\r\n==30839==    at 0x4C12B8: GCDfunction (ratio.c:1010)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Use of uninitialised value of size 8\r\n==30839==    at 0x4C9827: MulRat (reken.c:382)\r\n==30839==    by 0x4C131F: GCDfunction (ratio.c:1015)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Use of uninitialised value of size 8\r\n==30839==    at 0x4C982E: MulRat (reken.c:382)\r\n==30839==    by 0x4C131F: GCDfunction (ratio.c:1015)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n==30839== Invalid read of size 4\r\n==30839==    at 0x4C982E: MulRat (reken.c:382)\r\n==30839==    by 0x4C131F: GCDfunction (ratio.c:1015)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==  Address 0x5708928 is 0 bytes after a block of size 72 alloc'd\r\n==30839==    at 0x4A05A57: malloc (vg_replace_malloc.c:299)\r\n==30839==    by 0x4FE1DF: Malloc1 (tools.c:2236)\r\n==30839==    by 0x42FDFC: DolToTerms (dollar.c:1539)\r\n==30839==    by 0x4C10C2: GCDfunction (ratio.c:969)\r\n==30839==    by 0x4B7455: Generator (proces.c:3686)\r\n==30839==    by 0x42E4CE: CatchDollar (dollar.c:112)\r\n==30839==    by 0x4AF440: PreProcessor (pre.c:1050)\r\n==30839==    by 0x4E770F: main (startup.c:1605)\r\n==30839==\r\n    #$c = gcd_($a,$b);  * must be 1\r\n    .end\r\n  0.08 sec out of 0.08 sec\r\n==30839==\r\n==30839== HEAP SUMMARY:\r\n==30839==     in use at exit: 391,558,976 bytes in 132 blocks\r\n==30839==   total heap usage: 545 allocs, 413 frees, 414,465,023 bytes allocated\r\n==30839==\r\n==30839== LEAK SUMMARY:\r\n==30839==    definitely lost: 0 bytes in 0 blocks\r\n==30839==    indirectly lost: 0 bytes in 0 blocks\r\n==30839==      possibly lost: 0 bytes in 0 blocks\r\n==30839==    still reachable: 391,558,976 bytes in 132 blocks\r\n==30839==         suppressed: 0 bytes in 0 blocks\r\n==30839== Rerun with --leak-check=full to see details of leaked memory\r\n==30839==\r\n==30839== For counts of detected and suppressed errors, rerun with: -v\r\n==30839== Use --track-origins=yes to see where uninitialised values come from\r\n==30839== ERROR SUMMARY: 33 errors from 33 contexts (suppressed: 4 from 4)\r\n```"},"comment":{"url":"https://api.github.com/repos/vermaseren/form/issues/comments/306830415","html_url":"https://github.com/vermaseren/form/issues/191#issuecomment-306830415","issue_url":"https://api.github.com/repos/vermaseren/form/issues/191","id":306830415,"user":{"login":"crmafra","id":5940929,"avatar_url":"https://avatars1.githubusercontent.com/u/5940929?v=3","gravatar_id":"","url":"https://api.github.com/users/crmafra","html_url":"https://github.com/crmafra","followers_url":"https://api.github.com/users/crmafra/followers","following_url":"https://api.github.com/users/crmafra/following{/other_user}","gists_url":"https://api.github.com/users/crmafra/gists{/gist_id}","starred_url":"https://api.github.com/users/crmafra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crmafra/subscriptions","organizations_url":"https://api.github.com/users/crmafra/orgs","repos_url":"https://api.github.com/users/crmafra/repos","events_url":"https://api.github.com/users/crmafra/events{/privacy}","received_events_url":"https://api.github.com/users/crmafra/received_events","type":"User","site_admin":false},"created_at":"2017-06-07T15:26:11Z","updated_at":"2017-06-07T15:26:11Z","body":"On Wed,  7 Jun 2017 at  8:11:12 -0700, Jos Vermaseren wrote:\n>\n> The gcd of 0 and any other number makes no sense.\n\nUnless I am misunderstanding I believe the proper definitions are\n\ngcd(0,a) = a\ngcd(0,0) = 0\n\nSee page 3 of the book http://williamstein.org/books/ent/ent.pdf\n\n"}}
{"actor":{"display_login":"crmafra"}}