Merge lp:~seb128/indicator-session/backport_get_user_label_segfix into lp:indicator-session/14.04

Proposed by Sebastien Bacher
Status: Merged
Approved by: Charles Kerr
Approved revision: 453
Merged at revision: 453
Proposed branch: lp:~seb128/indicator-session/backport_get_user_label_segfix
Merge into: lp:indicator-session/14.04
Diff against target: 31 lines (+15/-6)
1 file modified
src/service.c (+15/-6)
To merge this branch: bzr merge lp:~seb128/indicator-session/backport_get_user_label_segfix
Reviewer Review Type Date Requested Status
Charles Kerr (community) Approve
Review via email: mp+273422@code.launchpad.net

Commit message

Backport fix for segfault in get_user_label() (lp: #1501244)

Description of the change

Backport fix for segfault in get_user_label() (lp: #1501244)

To post a comment you must log in.
Revision history for this message
Charles Kerr (charlesk) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/service.c'
2--- src/service.c 2014-04-02 15:02:59 +0000
3+++ src/service.c 2015-10-05 15:23:22 +0000
4@@ -295,12 +295,21 @@
5 {
6 const char * c;
7
8- /* If blank or whitespace, use username instead */
9- for (c = user->real_name; *c != '\0' && g_ascii_isspace (*c); c++);
10- if (*c == '\0')
11- return user->user_name;
12-
13- return user->real_name;
14+ /* if real_name exists and is printable, use it */
15+ c = user->real_name;
16+ if ((c != NULL) && g_utf8_validate(c, -1, NULL))
17+ {
18+ while (*c != '\0')
19+ {
20+ if (g_unichar_isgraph(g_utf8_get_char(c)))
21+ return user->real_name;
22+
23+ c = g_utf8_next_char(c);
24+ }
25+ }
26+
27+ /* otherwise, use this as a fallback */
28+ return user->user_name;
29 }
30
31 static const char *

Subscribers

People subscribed via source and target branches