Fix a possible crash

This commit is contained in:
Matthias Clasen 2007-05-29 19:58:46 +00:00
parent 132ba383b0
commit b0c0c2a2c5
2 changed files with 63 additions and 1 deletions

View File

@ -0,0 +1,57 @@
--- xdg-user-dirs-0.8/xdg-user-dirs-update.c.sentinel 2007-05-29 15:49:31.000000000 -0400
+++ xdg-user-dirs-0.8/xdg-user-dirs-update.c 2007-05-29 15:52:30.000000000 -0400
@@ -761,15 +761,16 @@ save_user_dirs (void)
fprintf (file, "# absolute path. No other format is supported.\n");
fprintf (file, "# \n");
- for (i = 0; user_dirs[i].name != NULL; i++)
- {
- escaped = shell_escape (user_dirs[i].path);
- fprintf (file, "XDG_%s_DIR=\"%s%s\"\n",
- user_dirs[i].name,
- (*escaped == '/')?"":"$HOME/",
- escaped);
- free (escaped);
- }
+ if (user_dirs != NULL)
+ for (i = 0; user_dirs[i].name != NULL; i++)
+ {
+ escaped = shell_escape (user_dirs[i].path);
+ fprintf (file, "XDG_%s_DIR=\"%s%s\"\n",
+ user_dirs[i].name,
+ (*escaped == '/')?"":"$HOME/",
+ escaped);
+ free (escaped);
+ }
fclose (file);
@@ -844,11 +845,12 @@ find_dir (Directory *dirs, const char *n
{
int i;
- for (i = 0; dirs[i].name != NULL; i++)
- {
- if (strcmp (dirs[i].name, name) == 0)
- return &dirs[i];
- }
+ if (dirs != NULL)
+ for (i = 0; dirs[i].name != NULL; i++)
+ {
+ if (strcmp (dirs[i].name, name) == 0)
+ return &dirs[i];
+ }
return NULL;
}
@@ -866,9 +868,7 @@ create_dirs (int force)
for (i = 0; default_dirs[i].name != NULL; i++)
{
default_dir = &default_dirs[i];
- user_dir = NULL;
- if (user_dirs)
- user_dir = find_dir (user_dirs, default_dir->name);
+ user_dir = find_dir (user_dirs, default_dir->name);
if (user_dir && !force)
{

View File

@ -1,6 +1,6 @@
Name: xdg-user-dirs
Version: 0.8
Release: 1%{?dist}
Release: 2%{?dist}
Summary: Handles user special directories
Group: User Interface/Desktops
@ -8,6 +8,7 @@ License: GPL
URL: http://freedesktop.org/wiki/Software_2fxdg_2duser_2ddirs
Source0: http://www.gnome.org/~alexl/%{name}-%{version}.tar.gz
Source1: xdg-user-dirs.sh
Patch0: xdg-user-dirs-0.8-sentinel.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: gettext
@ -19,6 +20,7 @@ homedirectory based on the defaults configured by the administrator.
%prep
%setup -q
%patch0 -p1 -b .sentinel
%build
%configure
@ -45,6 +47,9 @@ rm -rf $RPM_BUILD_ROOT
%{_sysconfdir}/X11/xinit/xinitrc.d/*
%changelog
* Tue May 29 2007 Matthias Clasen <mclasen@redhat.com> - 0.8-2
- Fix a possible crash.
* Wed May 16 2007 <alexl@redhat.com> - 0.8-1
- Update to 0.8, (only) fixing bug that always recreated deleted directories (#240139)