Opened 19 months ago
Last modified 18 months ago
#10329 new defect
ffmpeg output: *** stack smashing detected ***: terminated
Reported by: | hydra3333 | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | undetermined |
Version: | git-master | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description (last modified by )
Oh dear. I just built (cross-compiled under Ubuntu/mingw64) ffmpeg with ' -O3 -fstack-protector-all -D_FORTIFY_SOURCE=2 ' and received the follow output:
ffmpeg.exe -h *** stack smashing detected ***: terminated
So, it now crashes immediately.
I have cross-compiled it like that for a few years, the last time being 2023.04.03 and that runs fine.
"The only thing that has changed" is:
- latest mingw64 under the latest Ububtu 22.04.2
- added a couple of new dependencies eg brotli (which "shouldn't" affect 'ffmpeg -h')
Help ! How do I "fix" that ?
Change History (10)
comment:1 by , 19 months ago
Description: | modified (diff) |
---|
comment:3 by , 19 months ago
And now
- ubuntu 22.04.1 insists on trying to upgrade to 22.04.2.
- a normal user can no longer install gcc related stuff into ubuntu 22.04.1 to then build stuff.
I am really beginning to hate ubuntu, and I never use that word.
Does anyone have suggestions on a "better" linux that works cross-compiling ffmpeg ?
sudo apt install -y g++-12 Reading package lists... Done Building dependency tree... Done Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: libstdc++-12-dev : Depends: libc6-dev (>= 2.13-0ubuntu6) but it is not installable E: Unable to correct problems, you have held broken packages.
comment:4 by , 19 months ago
sudo apt install -y g++-12
That is not how you install gcc. You use a meta package: sudo apt install build-essential
comment:5 by , 19 months ago
OK. Had been using it for some time, but will revert to your advice asap.
comment:6 by , 19 months ago
Using a fresh copy of the VM,
sudo apt install -y build-essential Reading package lists... Done Building dependency tree... Done Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: libc6-dev : Depends: libc6 (= 2.35-0ubuntu3) but 2.35-0ubuntu3.1 is to be installed E: Unable to correct problems, you have held broken packages.
It was worth a try.
comment:7 by , 19 months ago
I suppose I should try it with out sudo apt -y update first.
Have given up though.
comment:8 by , 19 months ago
ok, yeah, can't find any way around "* stack smashing detected *: terminated"
no matter what I try that issue persists.
am trying MABS with '-fstack-protector-all -D_FORTIFY_SOURCE=2' just to see what happens.
edit:
the MABS exe works OK.
so, a build system which used to work fine for literally years now no longer cross-compiles a working ffmpeg with ubuntu 22.04.2 and mingw64 git head (or the tagged v10 release).
I guess that means bye bye ubuntu and hello MABS in a windows sandbox.
comment:9 by , 19 months ago
Ah.
Used WSL and it's inbuilt Ubuntu 20.04 and (eventually) a working mingw64 v11.0.1 and built an ffmpeg.
Save Result:
`
ffmpeg.exe -h
* stack smashing detected *: terminated
`
Hmm. Looking like mingw is the culprit.
Now to try a mingw64 v10.0.0 and see if that works under ubuntu 20.04 (it used to).
comment:10 by , 18 months ago
Best advice I have received so far is to dump Ubuntu and try archlinux.
Hmm, Arch is not listed as a supported guest for vmware.
Ah. Damn.
Even building commit 774d358e0fd520ab9503447c5f8f5e1633b96e39 (2023.04.02) with almost nothing enabled
still yields:
Since the build system is effectively unchanged between producing a working ffmpeg and producing a broken one like the above,
it means the combination of the latest Ubuntu 22.04.2 / mingw64 git head is unusable for building ffmpeg any more.
When run in a VM, Ubuntu 22.04.1 (which used to be OK) effectively forces one to upgrade to 22.04.2 ... and that breaks mingw64 tagged version 10 ... which means mingw64 git head must be used ... and that combo fails.
I'm inclined to try an old Ubuntu 22.04.1 without any 'sudo apt -y update' nor 'sudo apt -y upgrade' and mingw64 tagged as v10, and see what happens just in case something nefarious is going on.