(In reply to comment #7) > > From my reading of the manual page (haven't looked at the source), > > it looks to me like you need to free() the individual elements too. > > Not according to the manpage for putenv(), which states that the string > passed to putenv() becomes part of the environment directly ("The string > pointed to by string becomes part of the environment, so altering the string > changes the environment").
Sorry about the slow response; I subscribed to drm-devel@ recently and that ended up in a total flood of my bugzilla-dae...@freedesktop.org mail. So anyways, yes looks like you're right. The environment APIs are just ugly. I just looked at the GDM source, and it appears to call the same API, so this makes sense. Pushed to master, thanks! -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to policykit-1 in Ubuntu. https://bugs.launchpad.net/bugs/982684 Title: sudo, pkexec don't apply global environment settings from /etc/environment Status in PolicyKit: Fix Released Status in “policykit-1” package in Ubuntu: Fix Released Status in “sudo” package in Ubuntu: Fix Released Status in “policykit-1” source package in Precise: Fix Released Status in “sudo” source package in Precise: Fix Released Status in “policykit-1” source package in Quantal: Fix Released Status in “sudo” source package in Quantal: Fix Released Bug description: [Impact] In connection with the recent update-notifier changes (https://wiki.ubuntu.com/Specs/UpdateNotifierPackageDataDownloader), some users who were previously able to download the flashplugin via the apt proxy settings are now unable to download it when running, e.g., 'sudo apt-get install'. The reason for this is that, even though a global proxy may be configured in /etc/environment, sudo does not allow $http_proxy to be inherited by default and does not reapply the environment from /etc/environment (and from /etc/default/locale) via pam_env. The first part is reasonable, but I question the second part. Since these are global config files, I believe it's safe for sudo to apply the environment settings by default just as 'su' does; and the settings are intended to apply globally, which would include to sudo sessions. This would make update-notifier work more reliably for users with proxies, and would probably help with a variety of other cases where global variables are currently not being set as expected for sudo. [Test Case] 1. Set 'http_proxy=invalid' in /etc/environment 2. Run 'sudo wget http://www.ubuntu.com/', 'pkexec wget http://www.ubuntu.com/' 3. Verify that the commands return successfully 4. Install updated sudo, policykit-1 packages from precise-proposed 5. Repeat the commands from step 2 6. Verify that the commands now fail with an error about invalid proxies 7. Remove the http_proxy line from /etc/environment [Regression potential] Some users may consider it a feature that global settings from /etc/environment are not applied to sudo and/or pkexec. However, this is not by design; the cost of not being able to correctly support proxies for users is greater than the cost of changing this behavior in an SRU and breaking expectations of users regarding undocumented behavior. ProblemType: Bug DistroRelease: Ubuntu 12.04 Package: sudo 1.8.3p1-1ubuntu3 ProcVersionSignature: Ubuntu 3.2.0-22.35-generic 3.2.14 Uname: Linux 3.2.0-22-generic x86_64 ApportVersion: 2.0.1-0ubuntu3 Architecture: amd64 CheckboxSubmission: 017452a27eca3c8b498abbfa5ef91db9 CheckboxSystem: ecaaad6fa1e0799a0aa1126bf620f39e Date: Sun Apr 15 16:41:17 2012 InstallationMedia: Ubuntu 10.04.1 LTS "Lucid Lynx" - Release amd64 (20100816.1) ProcEnviron: TERM=xterm PATH=(custom, user) LANG=en_US.UTF-8 SHELL=/bin/bash SourcePackage: sudo UpgradeStatus: Upgraded to precise on 2011-11-08 (159 days ago) To manage notifications about this bug go to: https://bugs.launchpad.net/policykit/+bug/982684/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp