ROOTPLOIT
Server: LiteSpeed
System: Linux in-mum-web1878.main-hosting.eu 5.14.0-570.21.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 11 07:22:35 EDT 2025 x86_64
User: u435929562 (435929562)
PHP: 7.4.33
Disabled: system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/golang/1.22.0/src/cmd/go/testdata/script/cgo_trimpath_macro.txt
# This is a test that -trimpath trims the paths of every directory
# of Cgo dependencies in the module, and trims file paths included
# through the __FILE__ macro using --file-prefix-map.

[!cgo] skip
[short] skip 'links and runs binaries'

# Test in main module.
go run -trimpath -mod=vendor ./main
stdout '(\\_\\_|/_)[\\/]m[\\/]c[\\/]bar.h'

# Test in vendored module.
go run -trimpath -mod=vendor v.com/main
stdout '(\\_\\_|/_)[\\/]vendor[\\/]v.com[\\/]c[\\/]bar.h'

# Test in GOPATH mode.
env GO111MODULE=off
go run -trimpath ./main
stdout '(\\_\\_|/_)[\\/]GOPATH[\\/]src[\\/]c[\\/]bar.h'

-- go.mod --
module m

require v.com v1.0.0
-- go.sum --
v.com v1.0.0 h1:xxx
v.com v1.0.0/go.mod h1:xxx
-- vendor/modules.txt --
# v.com v1.0.0
## explicit; go 1.20
v.com/main
-- vendor/v.com/main/main.go --
package main

// #cgo CFLAGS: -I../c
// #include "stdio.h"
// void printfile();
import "C"

func main() {
    C.printfile()
    C.fflush(C.stdout)
}
-- vendor/v.com/main/foo.c --
#include "bar.h"
-- vendor/v.com/c/bar.h --
#include "stdio.h"

void printfile() {
    printf("%s\n", __FILE__);
}
-- main/main.go --
package main

// #cgo CFLAGS: -I../c
// #include "stdio.h"
// void printfile();
import "C"

func main() {
    C.printfile()
    C.fflush(C.stdout)
}
-- main/foo.c --
#include "bar.h"
-- c/bar.h --
#include "stdio.h"

void printfile() {
    printf("%s\n", __FILE__);
}