From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 13274 invoked from network); 29 Dec 2020 14:30:07 -0000 Received: from ewsd.inri.net (107.191.116.128) by inbox.vuxu.org with ESMTPUTF8; 29 Dec 2020 14:30:07 -0000 Received: from mail-wr1-f41.google.com ([209.85.221.41]) by ewsd; Tue Dec 29 09:28:32 -0500 2020 Received: by mail-wr1-f41.google.com with SMTP id r3so14823502wrt.2 for <9front@9front.org>; Tue, 29 Dec 2020 06:28:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=message-id:to:cc:subject:from:date:mime-version :content-transfer-encoding; bh=oJtxQGvdntGCa8ImqDXfyvRyZTcJzTVxYdrMDSqiQ/k=; b=nfFRT/VGzmGIya/442AKdRkJb3WQ5A0Z0lILZy8YOzKiZJYg46l1uvZjQH0KsDmokz ZK6+HW5BbyUCorM37la0qlWTNe9zaCOuzYpQpjUWN8qq8T76TKLFn5mcPBm6dYyUFVGR n8aEbhH9gXvZahq1YRkoUW384utf9w+qm4nQyxcoZqe/eVQnDtPJZj2XKfMOXUgWdO8L 6tDp4j/vREIui1NImiZw1mUanIBiZ0gQ4EhQBK6TNo4d4eqNJc+fY9PUsBMVxij5izgX NWw4HT/BxuuUAL5c8ojyeyZ/bST1uebDCW1NOKLbZBmRdVfbZRDW4aLYdU6t7G2A7ceu ic7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:to:cc:subject:from:date:mime-version :content-transfer-encoding; bh=oJtxQGvdntGCa8ImqDXfyvRyZTcJzTVxYdrMDSqiQ/k=; b=hLFjPkW0F4XE75RXO0fEf/ZFfoykChQbnAsOh9qKNcDUJmS/Lj5rXHIs+eK8e0vjjO g6QNMp8JeeyLVgTPmVx37PQforb57wbeXR3lKugJGZUP1mZxcpiQgdsUmzDTgCq5DtUL 7OgVRWWnG2EUNJcGyoY2gCXgf8pvA0BdBbWOJfd19zgg7caq1JB/WjNah7ZHse+vzVRZ 3Ir8zEsELt7pT+iGG57Wrpjcg1c3fXGLqh43KEErZsJS/m4vgHtsQNaO/3C9LaDzLnSM 529xVnpSk5ggZsvIOzkaEME8Cbg3aeJXFXYzbVPBGQ9PgoP6y3jFM+kEm0GpeJdTU34V ypFQ== X-Gm-Message-State: AOAM531ZMRoH9ay2Ef7p0TzZHEvTcNiaL/290koYyC9ZTkyp2PSanj5l tETlw+XjkWW1vYieAZYs+Ic= X-Google-Smtp-Source: ABdhPJxPXdxLmE/KfmnNSGXcm9xJESK2Ixp4l/arekXB41UMJ8Y8XwwQMwRjaLgLPylcH4ALIu2oIA== X-Received: by 2002:a5d:4112:: with SMTP id l18mr55689156wrp.116.1609252102717; Tue, 29 Dec 2020 06:28:22 -0800 (PST) Return-Path: Received: from cirno.home ([185.64.155.70]) by smtp.gmail.com with ESMTPSA id h15sm59313030wru.4.2020.12.29.06.28.22 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 29 Dec 2020 06:28:22 -0800 (PST) Message-ID: <3BA32B1BEC14B099376DC7279062EB92@gmail.com> To: 9front@9front.org CC: boehm.igor@gmail.com From: "Igor Boehm" Date: Tue, 29 Dec 2020 15:28:20 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: abstract object-oriented strategy singleton Subject: [9front] cmd/sort: fix resource leak (patch) Reply-To: 9front@9front.org Precedence: bulk There is a small resource leak in cmd/sort.c:/^dofile. Here is the code with some hopefully explanatory annotations (one liner patch is below): void dofile(Biobuf *b) { Line *l, *ol; int n; if(args.cflag) { if((ol = newline(b)) == nil) return; for(;;) { if((l = newline(b)) == nil) break; ^^^^^^^^^^^^^^^^^^^^^^ Break out of for leakes 'ol' n = kcmp(ol->key, l->key); if(n > 0 || (n == 0 && args.uflag)) { fprint(2, "sort: -c file not in sort\n"); /**/ done("order"); } free(ol->key); free(ol); ol = l; ^^^^^^^^^^^^^^^^^^^^^^ Assign 'l' to 'ol' and again break out of for would leak that } return; ^^^^^^^^^^^^^^^ There should be a 'free(ol);' before this 'return' } Here is the one line fix as an inline diff: diff -r 4c6206d69abb sys/src/cmd/sort.c --- a/sys/src/cmd/sort.c Mon Dec 28 21:21:22 2020 +0100 +++ b/sys/src/cmd/sort.c Tue Dec 29 15:11:29 2020 +0100 @@ -209,6 +209,7 @@ free(ol); ol = l; } + free(ol); return; }