403Webshell
Server IP : 91.108.123.36  /  Your IP : 216.73.216.171
Web Server : LiteSpeed
System : Linux lt-bnk-web922.main-hosting.eu 4.18.0-553.141.2.lve.el8.x86_64 #1 SMP Wed Jul 8 16:10:02 UTC 2026 x86_64
User : u970350538 ( 970350538)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/golang/1.22.0/src/cmd/cgo/internal/testplugin/testdata/issue44956/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/golang/1.22.0/src/cmd/cgo/internal/testplugin/testdata/issue44956/main.go
// Copyright 2021 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Issue 44956: writable static temp is not exported correctly.
// In the test below, package base is
//
//     X = &map{...}
//
// which compiles to
//
//     X = &stmp           // static
//     stmp = makemap(...) // in init function
//
// plugin1 and plugin2 both import base. plugin1 doesn't use
// base.X, so that symbol is deadcoded in plugin1.
//
// plugin1 is loaded first. base.init runs at that point, which
// initialize base.stmp.
//
// plugin2 is then loaded. base.init already ran, so it doesn't run
// again. When base.stmp is not exported, plugin2's base.X points to
// its own private base.stmp, which is not initialized, fail.

package main

import "plugin"

func main() {
	_, err := plugin.Open("issue44956p1.so")
	if err != nil {
		panic("FAIL")
	}

	p2, err := plugin.Open("issue44956p2.so")
	if err != nil {
		panic("FAIL")
	}
	f, err := p2.Lookup("F")
	if err != nil {
		panic("FAIL")
	}
	x := f.(func() *map[int]int)()
	if x == nil || (*x)[123] != 456 {
		panic("FAIL")
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit