Skip to content

Commit

Permalink
examples/rust: Fix some new rustc warnings
Browse files Browse the repository at this point in the history
With at least

  rustc 1.79.0 (129f3b996 2024-06-10) (Fedora 1.79.0-3.fc40)

We were getting warnings when building the rust examples like

warning: creating a mutable reference to mutable static is discouraged
  --> src/lib.rs:75:40
   |
75 |     let ctx: *mut luw_ctx_t = unsafe { &mut CTX };
   |                                        ^^^^^^^^ mutable reference to mutable static
   |
   = note: for more information, see issue #114447 <rust-lang/rust#114447>
   = note: this will be a hard error in the 2024 edition
   = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
   = note: `#[warn(static_mut_refs)]` on by default
help: use `addr_of_mut!` instead to create a raw pointer
   |
75 |     let ctx: *mut luw_ctx_t = unsafe { addr_of_mut!(CTX) };
   |                                        ~~~~~~~~~~~~~~~~~

So do like it says and use the addr_of_mut!() macro.

Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
  • Loading branch information
ac000 committed Jul 2, 2024
1 parent 3a751f7 commit 2cf492f
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 8 deletions.
4 changes: 2 additions & 2 deletions examples/rust/echo-request/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use unit_wasm::rusty::*;
use std::ffi::CStr;
use std::os::raw::c_char;
use std::os::raw::c_void;
use std::ptr::null_mut;
use std::ptr::{addr_of_mut, null_mut};

// Buffer of some size to store the copy of the request
static mut REQUEST_BUF: *mut u8 = null_mut();
Expand Down Expand Up @@ -51,7 +51,7 @@ pub extern "C" fn uwr_request_handler(addr: *mut u8) -> i32 {
uwr_init_ctx(ctx, addr, 4096);

// Set where we will copy the request into
uwr_set_req_buf(ctx, unsafe { &mut REQUEST_BUF }, LUW_SRB_NONE);
uwr_set_req_buf(ctx, unsafe { addr_of_mut!(REQUEST_BUF) }, LUW_SRB_NONE);

// Define the Response Body Text.

Expand Down
10 changes: 7 additions & 3 deletions examples/rust/large-upload/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
use unit_wasm::rusty::*;

use std::fs::File;
use std::ptr::null_mut;
use std::ptr::{addr_of_mut, null_mut};

static mut CTX: luw_ctx_t = UWR_CTX_INITIALIZER();
static mut REQUEST_BUF: *mut u8 = null_mut();
Expand All @@ -32,14 +32,18 @@ pub unsafe extern "C" fn uwr_response_end_handler() {

#[no_mangle]
pub extern "C" fn uwr_request_handler(addr: *mut u8) -> i32 {
let ctx: *mut luw_ctx_t = unsafe { &mut CTX };
let ctx: *mut luw_ctx_t = unsafe { addr_of_mut!(CTX) };
let mut f;
let bytes_wrote: isize;
let mut total = unsafe { TOTAL_BYTES_WROTE };

if total == 0 {
uwr_init_ctx(ctx, addr, 0);
uwr_set_req_buf(ctx, unsafe { &mut REQUEST_BUF }, LUW_SRB_NONE);
uwr_set_req_buf(
ctx,
unsafe { addr_of_mut!(REQUEST_BUF) },
LUW_SRB_NONE,
);

f = File::create("/var/tmp/large-file.dat").unwrap();
} else {
Expand Down
6 changes: 3 additions & 3 deletions examples/rust/upload-reflector/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

use unit_wasm::rusty::*;

use std::ptr::null_mut;
use std::ptr::{addr_of_mut, null_mut};

static mut CTX: luw_ctx_t = UWR_CTX_INITIALIZER();

Expand Down Expand Up @@ -72,7 +72,7 @@ pub fn upload_reflector(ctx: *mut luw_ctx_t) -> i32 {

#[no_mangle]
pub extern "C" fn uwr_request_handler(addr: *mut u8) -> i32 {
let ctx: *mut luw_ctx_t = unsafe { &mut CTX };
let ctx: *mut luw_ctx_t = unsafe { addr_of_mut!(CTX) };

if unsafe { REQUEST_BUF.is_null() } {
uwr_init_ctx(ctx, addr, 0 /* Response offset */);
Expand All @@ -87,7 +87,7 @@ pub extern "C" fn uwr_request_handler(addr: *mut u8) -> i32 {
*/
uwr_set_req_buf(
ctx,
unsafe { &mut REQUEST_BUF },
unsafe { addr_of_mut!(REQUEST_BUF) },
LUW_SRB_APPEND | LUW_SRB_ALLOC | LUW_SRB_FULL_SIZE,
);
} else {
Expand Down

0 comments on commit 2cf492f

Please sign in to comment.