Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 4 Nov 2021 16:13:22 +0100
From: Terefang Verigorn <terefang@...il.com>
To: musl@...ts.openwall.com
Subject: Re: possible buffer overflow in crypt() -- musl-1.2.2

proposed patch:

--- crypt.c     2021-01-15 03:26:00.000000000 +0100
+++ crypt.c.fixed       2021-11-04 16:11:25.540969172 +0100
@@ -9,6 +9,6 @@
         * purely to meet the public API requirements of the crypt_r
         * function; the implementation of crypt_r uses the object
         * purely as a char buffer. */
-       static char buf[128];
-       return __crypt_r(key, salt, (struct crypt_data *)buf);
+       static struct crypt_data buf;
+       return __crypt_r(key, salt, (struct crypt_data *)&buf);
 }

On Thu, Nov 4, 2021 at 3:53 PM Terefang Verigorn <terefang@...il.com> wrote:
>
> hello
>
> crypt.h declares
> ---
> struct crypt_data {
>    int initialized;
>    char __buf[256];
> };
> ---
>
> but crypt.c uses
> ---
> static char buf[128];
> return __crypt_r(key, salt, (struct crypt_data *)buf);
> ---
>
> the buf[128] should be rather buf[sizeof(crypt_data)]
>
> --
> Terefang



-- 
--
Document My Code? Why do you think they call it "code" ?
--
App developers spend too much time debugging errors in production systems
https://betanews.com/2016/11/03/developers-debugging-production-errors/
--
“The Principle of Priority states (a) you must know the difference
between what is urgent and what is important, and (b) you must do
what’s important first.”
Steven Pressfield (born 1943) American writer

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.