~filip-sohajek-deactivatedaccount/ubuntu/utopic/libgksu/fix-for-1338028

« back to all changes in this revision

Viewing changes to debian/patches/22_increase_gksu_helper_buf.patch

  • Committer: Bazaar Package Importer
  • Author(s): Michael Vogt
  • Date: 2009-03-09 09:24:17 UTC
  • mfrom: (1.1.7 upstream)
  • Revision ID: james.westby@ubuntu.com-20090309092417-azxlh0kaad57hhsg
Tags: 2.0.9-1ubuntu1
* New upstream bugfix release
* 09_multihead.patch: updated
* 13_polish_startup.diff: updated
* 20_better_usleep.patch: updated
* 22_increase_gksu_helper_buf.patch: dropped, taken upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
=== modified file 'libgksu/gksu-run-helper.c'
2
 
--- libgksu/gksu-run-helper.c   2008-06-10 14:14:50 +0000
3
 
+++ libgksu/gksu-run-helper.c   2008-06-11 12:25:55 +0000
4
 
@@ -63,6 +63,21 @@
5
 
             dirname, strerror (errno));
6
 
 }
7
 
 
8
 
+void read_gstring_from_stdin(GString *s)
9
 
+{
10
 
+  gchar buffer[255];
11
 
+  char *readp;
12
 
+  do
13
 
+  {
14
 
+     readp = fgets(buffer, sizeof(buffer), stdin);
15
 
+     if(readp == NULL)
16
 
+       return;
17
 
+     strip (buffer);
18
 
+     g_string_append(s, buffer);
19
 
+  } while (sizeof(buffer)-1 == strlen(readp));
20
 
+  return;
21
 
+}
22
 
+
23
 
 int
24
 
 main (int argc, char **argv)
25
 
 {
26
 
@@ -79,8 +94,6 @@
27
 
   gchar *xauth_token = NULL;
28
 
   gchar *sn_id = NULL;
29
 
 
30
 
-  gchar buffer[255];
31
 
-
32
 
   gint return_code;
33
 
 
34
 
   if (argc < 2)
35
 
@@ -101,24 +114,22 @@
36
 
   xauth_file = g_strdup_printf ("%s/.Xauthority",
37
 
                                xauth_dir);
38
 
 
39
 
-  fgets (buffer, 255, stdin);
40
 
-  strip (buffer);
41
 
+  GString *s = g_string_sized_new(255);
42
 
+  read_gstring_from_stdin(s);
43
 
 
44
 
   /* strlen ("gksu-run: ") == 10, see su.c */
45
 
-  xauth_display = g_strdup_printf ("%s", buffer + 10);
46
 
-
47
 
-  bzero (buffer, 255);
48
 
-  fgets (buffer, 255, stdin);
49
 
-  strip (buffer);
50
 
-
51
 
-  sn_id = g_strdup_printf ("%s", buffer + 10);
52
 
+  xauth_display = g_strdup_printf ("%s", s->str + 10);
53
 
+
54
 
+  s = g_string_truncate(s,0);
55
 
+  read_gstring_from_stdin(s);
56
 
+
57
 
+  sn_id = g_strdup_printf ("%s", s->str + 10);
58
 
   setenv("DESKTOP_STARTUP_ID", sn_id, TRUE);
59
 
 
60
 
-  bzero (buffer, 255);
61
 
-  fgets (buffer, 255, stdin);
62
 
-  strip (buffer);
63
 
+  s = g_string_truncate(s,0);
64
 
+  read_gstring_from_stdin(s);
65
 
 
66
 
-  xauth_token = g_strdup_printf ("%s", buffer + 10);
67
 
+  xauth_token = g_strdup_printf ("%s", s->str + 10);
68
 
 
69
 
   /* a bit more security is always fine */
70
 
   {
71
 
@@ -161,6 +172,7 @@
72
 
     return_code = system (argv[1]);
73
 
     
74
 
     clean_dir (xauth_dir);
75
 
+    g_string_free(s, TRUE);
76
 
     return return_code;
77
 
   }
78
 
 }
79